Import upstream gpsbabel version 1.3.3
authorJohn Goerzen <jgoerzen@complete.org>
Fri, 1 Jun 2007 09:39:20 +0000 (04:39 -0500)
committerJohn Goerzen <jgoerzen@complete.org>
Fri, 1 Jun 2007 09:39:20 +0000 (04:39 -0500)
Imported gpsbabel-1.3.3.tar.gz
into Mercurial repository

308 files changed:
AUTHORS
Makefile.in
alan.c [new file with mode: 0644]
an1.c
axim_gpb.c
bcr.c
cet.c
coastexp.c
configure
configure.in
contrib/correctCoordinates.pl [changed mode: 0644->0755]
copilot.c
csv_util.c
csv_util.h
defs.h
discard.c
dmtlog.c
easygps.c
filter_vecs.c
garmin.c
garmin_fs.c
garmin_fs.h
garmin_tables.c
garmin_txt.c
gbfile.c
gbfile.h
gbser_posix.c
gbser_win.c
gbtypes.h
gbversion.h [new file with mode: 0644]
gbversion.h.in [new file with mode: 0644]
gdb.c
geo.c
globals.c
glogbook.c
google.c
gpsbabel.html
gpx.c
gpxval
gtm.c
gtrnctr.c
hiketech.c
holux.c
hsa_ndv.c
html.c
igc.c
ignrando.c
internal_styles.c
jeeps/.cvsignore [new file with mode: 0644]
jeeps/gpsapp.c
jeeps/gpsapp.h
jeeps/gpslibusb.c
jeeps/gpsserial.c
jeeps/gpsusbstub.c
jeeps/gpsusbwin.c
kml.c
lowranceusr.c
magnav.c
magproto.c
main.c
mapsend.c
mapsource.c
mingw/include/expat.h
mingw/lib/README [new file with mode: 0644]
mingw/lib/libexpat.a
mingw/lib/libexpat.def [new file with mode: 0755]
mingw/libexpat.dll
mingw/testo [changed mode: 0644->0755]
mkshort.c
msroute.c
msvc/Expat/libexpat.dll [changed mode: 0644->0755]
msvc/GPSBabel-msvc7.sln [new file with mode: 0644]
msvc/GPSBabel-msvc7.vcproj [new file with mode: 0644]
msvc/GPSBabel.vcproj
msvc/config.h
nmea.c
palmdoc.c
pathaway.c
pcx.c
position.c
psitrex.c
queue.c
raymarine.c [new file with mode: 0644]
reference/alantrl.gpx [new file with mode: 0644]
reference/alantrl.trl [new file with mode: 0644]
reference/alanwpr.gpx [new file with mode: 0644]
reference/alanwpr.wpr [new file with mode: 0644]
reference/cet/cet-sample.gpx
reference/coastexp.ref
reference/coastexp.ref2
reference/coastexp.ref3
reference/coastexp.ref4
reference/compegps-wpt.gpx
reference/cototestmarker.gpx
reference/dusky.trk [changed mode: 0644->0755]
reference/earth-expertgps.kml
reference/earth-gc.kml
reference/easygps.loc [changed mode: 0644->0755]
reference/expertgps.rwf [new file with mode: 0644]
reference/fugawi.time.ref.txt
reference/garmin_symbols.gpx [new file with mode: 0644]
reference/gc/GC7FA4.gpx
reference/gc/GCGCA8.gpx
reference/gdb-sample-v3.gdb [new file with mode: 0644]
reference/gdb-sample.gpx
reference/geonet-sample.gpx
reference/gn-targets.gpx
reference/gpsutil-1.pcx [new file with mode: 0644]
reference/hiketech.gpx
reference/igc1.gpx
reference/igc1_gpx.out
reference/igc2_gpx.out
reference/magnav.pdb
reference/mapsource.mps [changed mode: 0644->0755]
reference/mps-empty.mps [changed mode: 0644->0755]
reference/psitwpts.txt [changed mode: 0644->0755]
reference/raymarine-sample.gpx [new file with mode: 0644]
reference/raymarine-sample.rwf [new file with mode: 0644]
reference/route/bcr-sample.gpx
reference/route/compegps-rte.gpx
reference/route/cst-sample.gpx
reference/route/mag_pdb-sample.gpx
reference/route/msroute-sample.gpx
reference/route/nmn4-sample.gpx
reference/route/psitrtes.txt [changed mode: 0644->0755]
reference/route/route.mps [changed mode: 0644->0755]
reference/route/stmwpp-route.gpx
reference/route/stmwpp-route.txt
reference/route/tef_xml.sample.gpx
reference/sample.gtm.gz [new file with mode: 0644]
reference/tpo-sample3.gpx
reference/track/axim-sample.gpx
reference/track/compegps-trk.gpx
reference/track/dmtlog-sample.gpx
reference/track/i65.anr [changed mode: 0644->0755]
reference/track/ignrando-sample.gpx
reference/track/interptrack.gpx
reference/track/kompass.tk [new file with mode: 0644]
reference/track/nmea.gpx
reference/track/pathaway.gpx
reference/track/psittrks.txt [changed mode: 0644->0755]
reference/track/stmwpp-track.gpx
reference/track/tinterptrack.gpx
reference/track/tpo-sample1.gpx
reference/track/trackfilter-sdistance.gpx
reference/track/trackfilter-sdistance2.gpx
reference/track/trackfilter.gpx
reference/track/tracks.gpx
reference/track/vitosmt_t.gpx
reference/transform-rte.gpx
reference/transform-wpt.gpx
reference/unicsv.gpx
reference/vitosmt.gpx
reference/wbt-200.gpx
route.c
shapelib/.cvsignore [new file with mode: 0644]
shapelib/shpopen.c
smplrout.c
stmsdf.c
stmwpp.c
style/gpsdrivetrack.style
style/kompass_tk.style [new file with mode: 0644]
style/kompass_wp.style [new file with mode: 0644]
style/tabsep.style
tef_xml.c
test-all [new file with mode: 0755]
testo
text.c
tiger.c
tools/cleardebug [changed mode: 0644->0755]
tools/mkcapabilities.in
tools/mkrpm
torture_test [changed mode: 0644->0755]
trackfilter.c
transform.c
unicsv.c
util.c
vcf.c
vecs.c
vitosmt.c
waypt.c
wbt-200.c
wfff_xml.c
win32/GPSBabelGUI.exe
win32/gui-2/GPSBabelGUI.dof
win32/gui-2/GPSBabelGUI.res
win32/gui-2/filter.dfm
win32/gui-2/filter.pas
win32/gui-2/locale/es/LC_MESSAGES/default.po [new file with mode: 0644]
win32/gui-2/locale/es/LC_MESSAGES/delphi.po [new file with mode: 0644]
win32/gui-2/locale/es/LC_MESSAGES/gpsbabel.po [new file with mode: 0644]
win32/gui-2/options.pas
xcsv.c
xmldoc/babelpdf.xsl [new file with mode: 0644]
xmldoc/chapters/build.xml
xmldoc/chapters/datums.xml
xmldoc/chapters/garmin_icons.xml
xmldoc/chapters/preface.xml
xmldoc/chapters/styles.xml
xmldoc/chapters/use.xml
xmldoc/filters/arc.xml
xmldoc/filters/discard.xml
xmldoc/filters/duplicate.xml
xmldoc/filters/interpolate.xml
xmldoc/filters/nuketypes.xml
xmldoc/filters/options/duplicate-all.xml
xmldoc/filters/options/duplicate-correct.xml
xmldoc/filters/options/track-merge.xml
xmldoc/filters/options/track-move.xml
xmldoc/filters/options/track-sdistance.xml
xmldoc/filters/options/track-split.xml
xmldoc/filters/options/track-start.xml
xmldoc/filters/options/transform-del.xml [new file with mode: 0644]
xmldoc/filters/options/transform-rte.xml [new file with mode: 0644]
xmldoc/filters/options/transform-trk.xml [new file with mode: 0644]
xmldoc/filters/options/transform-wpt.xml [new file with mode: 0644]
xmldoc/filters/polygon.xml
xmldoc/filters/position.xml
xmldoc/filters/radius.xml
xmldoc/filters/simplify.xml
xmldoc/filters/stack.xml
xmldoc/filters/transform.xml
xmldoc/formats/alantrl.xml [new file with mode: 0644]
xmldoc/formats/alanwpr.xml [new file with mode: 0644]
xmldoc/formats/an1.xml
xmldoc/formats/arc.xml
xmldoc/formats/axim_gpb.xml
xmldoc/formats/baroiq.xml
xmldoc/formats/bcr.xml
xmldoc/formats/cambridge.xml
xmldoc/formats/cetus.xml
xmldoc/formats/coastexp.xml
xmldoc/formats/compegps.xml
xmldoc/formats/copilot.xml
xmldoc/formats/coto.xml
xmldoc/formats/cst.xml
xmldoc/formats/csv.xml
xmldoc/formats/easygps.xml
xmldoc/formats/fugawi.xml
xmldoc/formats/garmin.xml
xmldoc/formats/garmin301.xml
xmldoc/formats/garmin_txt.xml
xmldoc/formats/gcdb.xml
xmldoc/formats/gdb.xml
xmldoc/formats/geo.xml
xmldoc/formats/geoniche.xml
xmldoc/formats/glogbook.xml
xmldoc/formats/google.xml
xmldoc/formats/gpilots.xml
xmldoc/formats/gpsutil.xml
xmldoc/formats/gpx.xml
xmldoc/formats/gtrnctr.xml
xmldoc/formats/holux.xml
xmldoc/formats/html.xml
xmldoc/formats/igc.xml
xmldoc/formats/kml.xml
xmldoc/formats/kompass_tk.xml [new file with mode: 0644]
xmldoc/formats/kompass_wp.xml [new file with mode: 0644]
xmldoc/formats/lowranceusr.xml
xmldoc/formats/magellan.xml
xmldoc/formats/magellan1.xml
xmldoc/formats/magellanx.xml
xmldoc/formats/maggeo.xml
xmldoc/formats/magnav.xml
xmldoc/formats/mapconverter.xml
xmldoc/formats/mapsend.xml
xmldoc/formats/nmea.xml
xmldoc/formats/openoffice.xml
xmldoc/formats/options/an1-nogc.xml
xmldoc/formats/options/an1-road.xml
xmldoc/formats/options/bcr-index.xml
xmldoc/formats/options/bcr-prefer_shortnames.xml [new file with mode: 0644]
xmldoc/formats/options/compegps-index.xml
xmldoc/formats/options/garmin-get_posn.xml
xmldoc/formats/options/garmin-power_off.xml
xmldoc/formats/options/garmin_txt-grid.xml [new file with mode: 0644]
xmldoc/formats/options/igc-timeadj.xml
xmldoc/formats/options/ignrando-index.xml
xmldoc/formats/options/nmn4-index.xml
xmldoc/formats/options/stmsdf-index.xml
xmldoc/formats/options/stmwpp-index.xml
xmldoc/formats/options/tiger-genurl.xml
xmldoc/formats/options/tpg-datum.xml
xmldoc/formats/options/xcsv-datum.xml [new file with mode: 0644]
xmldoc/formats/palmdoc.xml
xmldoc/formats/pcx.xml
xmldoc/formats/psp.xml
xmldoc/formats/raymarine.xml [new file with mode: 0644]
xmldoc/formats/s_and_t.xml
xmldoc/formats/saplus.xml
xmldoc/formats/shape.xml [new file with mode: 0644]
xmldoc/formats/stmsdf.xml
xmldoc/formats/tef.xml
xmldoc/formats/text.xml
xmldoc/formats/tmpro.xml
xmldoc/formats/tomtom.xml
xmldoc/formats/unicsv.xml
xmldoc/formats/wbt-bin.xml
xmldoc/formats/wbt.xml
xmldoc/formats/xmap.xml
xmldoc/formats/xmap2006.xml
xmldoc/formats/xmapwpt.xml
xmldoc/gpsbabel_man.xml
xmldoc/makedoc.in
xmldoc/old/readme.xml
xmlgeneric.c
xmlgeneric.h
zlib/.cvsignore [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
index 1ad113d950cc8b5b47660828a96bef2fb7975fd0..c28c51c2134d6741c8eb040ef3d61a3743f8a444 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -22,11 +22,13 @@ Other contributors and helpers:
 * Claus Broch
 * Curtis E. Mills
 * Dave Pawson
+* Daniel Diaz Quintero
 * Eric Cloninger
 * Etienne Tasse
 * Frank Warmerdam
 * Fredie Kern <f.kern@xdesy.de>
 * Gary Paulson
+* Gunar Megger
 * Gustavo Niemeyer <gustavo@niemeyer.net>
 * Harald Nordius
 * HSA Systems, Sven Dowideit <sven@hsa.com.au>
@@ -39,6 +41,7 @@ Other contributors and helpers:
 * Josh McKee
 * Justin Broughton <justinbr@earthlink.net>
 * Kjeld Jensen
+* Lilian Morinon
 * Mark Bradley <mrcb.sf.gpsb@osps.net>
 * Oyvind Kaurstad
 * P. Rosen
index fcfc1a08ba112b977a6940b708f6079535ee03ab..19284ececa0a5d0340b86ae13bf065cad5723ee4 100644 (file)
@@ -9,8 +9,8 @@ RELEASE=@PACKAGE_RELEASE@
 VERSIOND=$(VERSD)$(RELEASE)
 VERSIONU=$(VERSU)$(RELEASE)
 
-DOCVERSION=development
 DOCVERSION=@PACKAGE_VERSION@
+# DOCVERSION=development
 
 CC=@CC@
 EXEEXT=@EXEEXT@
@@ -36,7 +36,8 @@ OUTPUT_SWITCH=-o #
 GBCFLAGS=$(EXTRA_CFLAGS) $(DEBUGGING) -I. -I@srcdir@/coldsync \
        $(OPTIMIZATION) @CFLAGS@
 LDFLAGS=$(EXTRA_LDFLAGS) @LDFLAGS@
-DESTDIR=/usr/local/
+PREFIX=@prefix@
+INSTALL_DIR=$(DESTDIR)/$(PREFIX)
 
 # OTHER_ROOT=/opt/local        # For DarwinPorts on OSX
 # OTHER_ROOT=/sw               # Uncomment For Fink on OS X.
@@ -53,7 +54,7 @@ FMTS=magproto.o gpx.o geo.o mapsend.o mapsource.o garmin_tables.o \
        tef_xml.o maggeo.o pathaway.o vitosmt.o gdb.o bcr.o coto.o \
        ignrando.o stmwpp.o msroute.o cst.o nmn4.o mag_pdb.o compegps.o \
        yahoo.o unicsv.o wfff_xml.o garmin_txt.o axim_gpb.o gpssim.o \
-       wbt-200.o stmsdf.o gtrnctr.o dmtlog.o
+       wbt-200.o stmsdf.o gtrnctr.o dmtlog.o raymarine.o alan.o
 
 FILTERS=position.o radius.o duplicate.o arcdist.o polygon.o smplrout.o \
        reverse_route.o sort.o stackfilter.o trackfilter.o discard.o \
@@ -98,17 +99,17 @@ WEB=@DOCDIR@
 
 all: gpsbabel$(EXEEXT)
 
-gpsbabel$(EXEEXT): $(OBJS) @GPSBABEL_DEBUG@ Makefile configure
+gpsbabel$(EXEEXT): configure Makefile $(OBJS) @GPSBABEL_DEBUG@ 
        $(CC)  $(CFLAGS) $(LDFLAGS) $(OBJS) @LIBS@ @EXPAT_LIB@ @USB_LIBS@ $(OUTPUT_SWITCH)$@
 
 gpsbabel-debug: $(OBJS)
        $(CC)  $(CFLAGS) $(LDFLAGS) $(OBJS) @LIBS@ @EFENCE_LIB@ @EXPAT_LIB@ @USB_LIBS@ $(OUTPUT_SWITCH)$@
 
-Makefile: Makefile.in config.status
+Makefile gbversion.h: Makefile.in config.status xmldoc/makedoc.in gbversion.h.in
        CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status 
 
-globals.o:
-       $(CC)  @CPPFLAGS@ -c $(GBCFLAGS) -DVERSION=\"$(VERSIOND)\" $< $(OUTPUT_SWITCH)$@
+config.status: configure 
+       $(SHELL) config.status --recheck
 
 jeeps/gpslibusb.o: 
        $(CC)  @CPPFLAGS@ -c $(GBCFLAGS) @USB_CFLAGS@ @srcdir@/jeeps/gpslibusb.c $(OUTPUT_SWITCH)$@
@@ -122,6 +123,10 @@ clean:
 configure: configure.in
        autoconf
 
+tag:
+       cvs commit
+       cvs tag gpsbabel_@GBMAJOR@_@GBMINOR@_@GBMICRO@@PACKAGE_RELEASE@
+
 more-clean: clean
        tools/mkmoreclean
 
@@ -129,17 +134,31 @@ check:
        ./testo
 
 torture:
-       ./testo
-       ./torture_test
+       @echo "testo in progress... (basic data integrity test)"
+       @./testo
+       @echo "vtesto in progress... (valgrind is watching testo)"
+       @./vtesto
+       @echo "torture_test in progress... (shortname reduction)"
+       @./torture_test
+#
+#      Because there are some "non-real" errors like "IGC: bad date" 
+#      test-all does not stop on errors.
+#      Please inspect the log file (/tmp/gb-test-all.log) for segmentation
+#      faults, math overflows and other hard errors
+#
+       @echo "test-all in progress... (read/write test between all possible formats)"
+       @./test-all -s -r reference/expertgps.gpx
 
 #
 # This will only work on UNIX-like substances.
 #
 install: @INSTALL_DEBUG@
-       install gpsbabel  $(DESTDIR)/bin
+       @mkdir -p $(INSTALL_DIR)/bin
+       install gpsbabel  $(INSTALL_DIR)/bin/
 
 install-debug:
-       install gpsbabel-debug  $(DESTDIR)/bin
+       @mkdir -p $(INSTALL_DIR)/bin
+       install gpsbabel-debug  $(INSTALL_DIR)/bin/
 
 # Nerdy release stuff that needs to work only on Linux.
 
@@ -155,6 +174,7 @@ dep:
        echo Edit Makefile.in and bring in /tmp/dep
 
 $(WEB)/htmldoc-$(DOCVERSION)/readme.html: FORCE
+       mkdir -p $(WEB)/htmldoc-$(DOCVERSION)
        perl xmldoc/makedoc
        xmlwf xmldoc/readme.xml         #check for well-formedness
        xmllint --noout --valid xmldoc/readme.xml       #validate
@@ -166,6 +186,32 @@ $(WEB)/htmldoc-$(DOCVERSION)/readme.html: FORCE
        chmod 755 tools/mkcapabilities
        tools/mkcapabilities
 
+#
+# The .fo and PDF versions depend on additional tools.
+# 'fop' must be obtained from http://xmlgraphics.apache.org/fop/
+#   0.92beta seems to work OK, BUT.
+#   * If you have a package called 'docbook-xml-website' it's reported
+#     to prevent the build from working.   Remove it. (Suse)
+#   * Sun Java seems to be required.   GCJ 1.4.2 doesn't work.   You can
+#     force Sun Java to be used by creating ~/.foprc with 'rpm_mode=' (Fedora)
+#     Get it from http://www.java.com
+# The Hypnenation package must be installed from 
+#   http://offo.sourceforge.net/hyphenation/index.html - be sure to get the
+#   version that corresponds to the version of FOP that you used above.
+# The docbook XSL must be 1.71.1 or higher.  
+#   * Remember to update /etc/xml/catalogs if you manually update this.
+#
+gpsbabel.fo:  FORCE
+       perl xmldoc/makedoc
+       xmlwf xmldoc/readme.xml         #check for well-formedness
+       xmllint --noout --valid xmldoc/readme.xml       #validate
+       xsltproc -o $@ xmldoc/babelpdf.xsl xmldoc/readme.xml
+
+gpsbabel.pdf: gpsbabel.fo
+       fop -q -fo gpsbabel.fo -pdf gpsbabel.pdf 
+       cp gpsbabel.pdf $(WEB)/htmldoc-$(DOCVERSION)/gpsbabel-$(DOCVERSION).pdf
+
+
 gpsbabel.html: FORCE
        xsltproc \
          --stringparam toc.section.depth "1" \
@@ -177,7 +223,7 @@ gpsbabel.html: FORCE
 readme.txt: gpsbabel.html
        lynx -nolist -dump gpsbabel.html  > $@
 
-doc: gpsbabel $(WEB)/htmldoc-$(DOCVERSION)/readme.html # readme.txt
+doc: gpsbabel $(WEB)/htmldoc-$(DOCVERSION)/readme.html gpsbabel.pdf # readme.txt
 
 FORCE:
 
@@ -195,7 +241,7 @@ release-sourcecheck:
        make clean
        rm -fr gpsbabel-$(VERSIOND)
 #rjl   make gpsbabel doc gpsbabel.html
-       @(. tools/functions && ask "Enter 'y' to tag the tree." "y") && cvs tag -F gpsbabel_$(VERSIONU) ; exit 0
+       @(. tools/functions && ask "Enter 'y' to tag the tree as gpsbabel_$(VERSIONU)." "y") && cvs tag -F gpsbabel_$(VERSIONU) ; exit 0
        cvs export -r gpsbabel_$(VERSIONU) -d gpsbabel-$(VERSIOND) gpsbabel
        touch gpsbabel-$(VERSIOND)/internal_styles.c
 
@@ -234,6 +280,11 @@ release-rpm:
 # Do this build in a temporary tree that was a copy of the tagged one
 # to avoid scribbling in the "real" one.
 #
+# The cross builds are built with mingw.   http://mirzam.it.vu.nl/mingw
+# and http://mingw.sourceforge.net are convenient sources for that.
+# binutils, runtime, w32api, and gcc-core seem to be required.
+#
+
 release-winbuild:
        rm -fr /tmp/gpsbabel-$(VERSIOND)-cross
        cp -a gpsbabel-$(VERSIOND) /tmp/gpsbabel-$(VERSIOND)-cross
@@ -243,7 +294,7 @@ release-winbuild:
        rm -fr /tmp/gpsbabel-$(VERSIOND)-cross
 
 release-upload:  /tmp/gpsbabel-$(VERSIOND).tar.gz  /tmp/gpsbabel-$(VERSIOND).zip /tmp/dist/SRPMS/gpsbabel-$(VERSIOND)-0.src.rpm  /tmp/dist/RPMS/i386/gpsbabel-$(VERSIOND)-0.i386.rpm
-       @(. tools/functions && ask "Type yes if you want to do the upload now" "yes" )
+       @(. tools/functions && ask "Type 'yes' if you want to do the upload now" "yes" )
        curl -u anonymous:anonymous --upload-file /tmp/gpsbabel-$(VERSIOND).tar.gz ftp://upload.sf.net/incoming/
        curl -u anonymous:anonymous --upload-file /tmp/gpsbabel-$(VERSIOND).zip ftp://upload.sf.net/incoming/
        curl -u anonymous:anonymous --upload-file /tmp/dist/SRPMS/gpsbabel-$(VERSIOND)-0.src.rpm  ftp://upload.sf.net/incoming/ 
@@ -251,8 +302,8 @@ release-upload:  /tmp/gpsbabel-$(VERSIOND).tar.gz  /tmp/gpsbabel-$(VERSIOND).zip
 
 release: release-sourcecheck  release-tarball release-winbuild release-rpm release-upload
 
-rpm: clean
-       tools/mkrpm $(VERSD) $(RELEASE)
+rpm:
+       tools/mkrpm $(WEB) $(VERSD) $(RELEASE)
 
 mac-release:
        mkdir -p usr/bin usr/share/gpsbabel/doc
@@ -267,6 +318,8 @@ msvc-build:
        LINK.EXE /NOLOGO @objs.lst ./msvc/expat/libexpat.lib /out:gpsbabel.exe 
 
 # Machine generated from here down. 
+alan.o: alan.c defs.h config.h queue.h gbtypes.h zlib/zlib.h zlib/zconf.h \
+  gbfile.h cet.h cet_util.h inifile.h
 an1.o: an1.c defs.h config.h queue.h gbtypes.h zlib/zlib.h zlib/zconf.h \
   gbfile.h cet.h cet_util.h inifile.h an1sym.h
 arcdist.o: arcdist.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
@@ -312,7 +365,11 @@ cst.o: cst.c defs.h config.h queue.h gbtypes.h zlib/zlib.h zlib/zconf.h \
   gbfile.h cet.h cet_util.h inifile.h strptime.h
 csv_util.o: csv_util.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h csv_util.h grtcirc.h \
-  strptime.h
+  strptime.h jeeps/gpsmath.h jeeps/gps.h jeeps/../defs.h jeeps/gpsport.h \
+  jeeps/gpsdevice.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
+  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
+  jeeps/gpsmath.h jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h \
+  jeeps/gpsproj.h
 delgpl.o: delgpl.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h
 discard.o: discard.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
@@ -387,7 +444,7 @@ geoniche.o: geoniche.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   jeeps/gpscom.h jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h garmin_tables.h
 globals.o: globals.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
-  zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h
+  zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h gbversion.h
 glogbook.o: glogbook.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h xmlgeneric.h
 google.o: google.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
@@ -505,7 +562,7 @@ pathaway.o: pathaway.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h coldsync/palm.h \
   coldsync/../gbtypes.h coldsync/pdb.h csv_util.h strptime.h
 pcx.o: pcx.c defs.h config.h queue.h gbtypes.h zlib/zlib.h zlib/zconf.h \
-  gbfile.h cet.h cet_util.h inifile.h garmin_tables.h
+  gbfile.h cet.h cet_util.h inifile.h garmin_tables.h csv_util.h
 polygon.o: polygon.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h filterdefs.h
 position.o: position.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
@@ -520,6 +577,8 @@ quovadis.o: quovadis.c quovadis.h defs.h config.h queue.h gbtypes.h \
   coldsync/palm.h coldsync/../gbtypes.h coldsync/pdb.h
 radius.o: radius.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h filterdefs.h grtcirc.h
+raymarine.o: raymarine.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
+  zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h csv_util.h
 reverse_route.o: reverse_route.c defs.h config.h queue.h gbtypes.h \
   zlib/zlib.h zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h \
   filterdefs.h
@@ -611,7 +670,11 @@ wbt-200.o: wbt-200.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
 wfff_xml.o: wfff_xml.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h xmlgeneric.h
 xcsv.o: xcsv.c defs.h config.h queue.h gbtypes.h zlib/zlib.h zlib/zconf.h \
-  gbfile.h cet.h cet_util.h inifile.h csv_util.h
+  gbfile.h cet.h cet_util.h inifile.h csv_util.h jeeps/gpsmath.h \
+  jeeps/gps.h jeeps/../defs.h jeeps/gpsport.h jeeps/gpsdevice.h \
+  jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h jeeps/gpsapp.h \
+  jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h jeeps/gpsmath.h \
+  jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h
 xmlgeneric.o: xmlgeneric.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h xmlgeneric.h
 xmltag.o: xmltag.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
@@ -780,5 +843,5 @@ zlib/trees.o: zlib/trees.c zlib/deflate.h zlib/zutil.h zlib/zlib.h \
   zlib/zconf.h zlib/trees.h
 zlib/uncompr.o: zlib/uncompr.c zlib/zlib.h zlib/zconf.h
 zlib/zutil.o: zlib/zutil.c zlib/zutil.h zlib/zlib.h zlib/zconf.h
-internal_styles.c: mkstyle.sh style/arc.style style/cambridge.style style/csv.style style/cup.style style/custom.style style/dna.style style/fugawi.style style/garmin301.style style/garmin_poi.style style/geonet.style style/gpsdrive.style style/gpsdrivetrack.style style/gpsman.style style/ktf2.style style/kwf2.style style/mapconverter.style style/mxf.style style/nima.style style/openoffice.style style/s_and_t.style style/saplus.style style/sportsim.style style/tabsep.style style/xmap2006.style style/xmap.style style/xmapwpt.style
+internal_styles.c: mkstyle.sh style/arc.style style/cambridge.style style/csv.style style/cup.style style/custom.style style/dna.style style/fugawi.style style/garmin301.style style/garmin_poi.style style/geonet.style style/gpsdrive.style style/gpsdrivetrack.style style/gpsman.style style/kompass_tk.style style/kompass_wp.style style/ktf2.style style/kwf2.style style/mapconverter.style style/mxf.style style/nima.style style/openoffice.style style/s_and_t.style style/saplus.style style/sportsim.style style/tabsep.style style/xmap2006.style style/xmap.style style/xmapwpt.style
        ./mkstyle.sh > internal_styles.c || (rm -f internal_styles.c ; exit 1)
diff --git a/alan.c b/alan.c
new file mode 100644 (file)
index 0000000..fbc1f72
--- /dev/null
+++ b/alan.c
@@ -0,0 +1,938 @@
+/*
+
+    Read/write Alan Map500 Waypoints, Routes and Tracklogs.
+
+    Provides "alanwpr" and "alantrl" formats for gpsbabel.
+    Currently supports OS 2.xx only.
+
+    Copyright (C) 2007  Gunar Megger, 0xff@quantentunnel.de
+    Copyright (C) 2005  Robert Lipe, robertlipe@usa.net
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+
+ */
+
+#include <stdio.h>
+#include <time.h>
+#include "defs.h"
+
+
+#define MYNAME "alan"
+
+#define MAXWPT      1000               /* old 500 */
+
+#define MAXRTE      50                 /* old 20 */
+#define MAXWPTINRTE 150                        /* old 30 */
+
+#define MAXTRK      8                  /* old 5 */
+#define MAXPTINTRK  2500
+
+#define WPT_NAME_LEN    8
+#define WPT_COMMENT_LEN 12
+
+#define RTE_NAME_LEN    8
+#define RTE_COMMENT_LEN 12
+
+#define TRK_NAME_LEN    12
+#define TRK_COMMENT_LEN 13
+
+struct wpthdr {
+  gbuint32 id;
+  gbint16 num;
+  gbint16 next;
+  gbint16 idx[MAXWPT];
+  gbuint8 used[MAXWPT];
+};
+
+struct wpt {
+  char name[WPT_NAME_LEN];
+  char comment[WPT_COMMENT_LEN];
+  struct {
+    gbint32 x;                         /* degree * 36000 */
+    gbint32 y;                         /* degree * 36000  */
+  } pt;
+  gbint32 date;
+  gbint32 time;
+  gbint16 usecount;
+  gbint8 checked;
+  gbint8 reserved;
+};
+
+struct rtehdr {
+  gbuint32 id;
+  gbint16 num;
+  gbint16 next;
+  gbint16 idx[MAXRTE];
+  gbuint8 used[MAXRTE];
+  gbint16 rteno;
+};
+
+struct rte {
+  char name[RTE_NAME_LEN];
+  char comment[RTE_COMMENT_LEN];
+  gbint16 wptnum;
+  gbint16 wptidx[MAXWPTINRTE];
+  gbint16 reserved;
+  gbint32 date;
+  gbint32 time;
+};
+
+struct wprdata {
+  struct wpthdr wpthdr;
+  struct wpt    wpt[MAXWPT];
+  struct rtehdr rtehdr;
+  struct rte    rte[MAXRTE];
+};
+
+struct trkhdr {
+  gbint16 totalpt;
+  gbint16 next;
+  char name[TRK_NAME_LEN];             /* 10, null terminated */
+  char comment[TRK_COMMENT_LEN];       /* 12, null terminated */
+  gbuint8 reserved[3];
+  gbuint32 occupied;
+  gbuint32 show;
+  gbuint32 fill;
+};
+
+struct loghdr {
+  gbuint32 id;
+  gbint16 num;
+  gbint16 next;
+  gbint32 date;
+  gbint32 time;
+  struct trkhdr trkhdr[MAXTRK];
+};
+
+struct trklog {
+  struct {
+    gbint32 x;                         /* degree * 36000 */
+    gbint32 y;                         /* degree * 36000  */
+  } pt[MAXPTINTRK];
+  struct {
+    gbint16 speed;                     /* km/h * 200 */
+    gbint16 height;                    /* m * 5 */
+  } sh[MAXPTINTRK];
+};
+
+struct trldata {
+  struct loghdr loghdr;
+  struct trklog trklog[MAXTRK];
+};
+
+#define WPT_HDR_ID 0x5C38A600
+#define RTE_HDR_ID 0xD87F5900
+#define TRL_HDR_ID 0x38CB1200
+
+#define WPT_IDX_NONE -1                        /* 0xffff */
+#define WPT_USED      0xff
+#define WPT_UNUSED    0
+#define WPT_CHECKED   1
+#define WPT_UNCHECKED 0
+
+#define RTE_IDX_NONE   -1              /* 0xffff */
+#define RTE_USED        0xff
+#define RTE_UNUSED      0
+#define RTE_RTENO_NONE -1
+
+#define TRK_USED     1
+#define TRK_UNUSED   0
+#define TRK_SHOW     1
+#define TRK_HIDE     0
+#define TRK_FILL     1
+#define TRK_WRAP     0
+
+#define MAP500_PT_SCALE 36000.0
+#define pt2deg(P) ((double)(P) / MAP500_PT_SCALE)
+#define deg2pt(D) (gbint32)si_round((double)(D) * MAP500_PT_SCALE)
+
+#define MAP500_ALTITUDE_SCALE   5.0
+#define hgt2m(A) ((double)(A) / MAP500_ALTITUDE_SCALE)
+#define m2hgt(A) (gbint16)si_round((double)(A) * MAP500_ALTITUDE_SCALE)
+
+#define MAP500_SPEED_SCALE    720.0
+#define sp2mps(S) ((double)(S) / MAP500_SPEED_SCALE)
+#define mps2sp(S) (gbint16)si_round((double)(S) * MAP500_SPEED_SCALE)
+
+#define  BYTEORDER_TEST  0x04030201    /* 32bit reference value */
+enum {
+  SWAP_NONE  = 0x1234,                 /* map500 regular */
+  SWAP_BYTES = 0x2143,                 /* bytes swapped */
+  SWAP_WORDS = 0x3412,                 /* words swapped */
+  SWAP_BOTH  = 0x4321                  /* words + bytes swapped */
+};
+
+/**************************************************************************/
+
+static gbfile *fin = NULL, *fout = NULL;
+struct wprdata WPR;
+struct trldata TRL;
+
+static arglist_t wpr_args[] = {
+  /*
+  {"os3", &osversion, "Operating system version 3",
+          NULL, ARGTYPE_BOOL, ARGNOMINMAX },
+  */
+  ARG_TERMINATOR
+};
+static arglist_t trl_args[] = {
+  /*
+  {"os3", &osversion, "Operating system version 3",
+          NULL, ARGTYPE_BOOL, ARGNOMINMAX },
+  */
+  ARG_TERMINATOR
+};
+
+/**************************************************************************/
+
+static unsigned int byte_order(void) {
+  unsigned long test = BYTEORDER_TEST;
+  unsigned char *ptr;
+  unsigned int order;
+
+  ptr = (unsigned char *)(&test);
+  order = (ptr[0] << 12) | (ptr[1] << 8) | (ptr[2] << 4) | ptr[3];
+
+  return order;
+}
+
+static void sw_bytes(void *word) {
+  gbuint8 *p = word;
+  gbuint16 *r = word;
+
+  *r = (gbuint16)(p[1] << 8 | p[0]);
+}
+static void sw_words(void *dword) {
+  gbuint16 *p = dword;
+  gbuint32 *r = dword;
+
+  *r = (gbuint32)(p[0] << 16 | p[1]);
+}
+static void rev_bytes(void *dword) {
+  gbuint8 *p = dword;
+  gbuint32 *r = dword;
+
+  *r = (gbuint32)(p[3] << 24 | p[2] << 16 | p[1] << 8 | p[0]);
+}
+
+static void swap_wpthdr(struct wpthdr *wpthdr,
+                       void (*swap16)(void *), void (*swap32)(void *)) {
+  int i;
+
+  if ( swap32 != NULL ) {
+    swap32( &wpthdr->id );
+  }
+  if ( swap16 != NULL ) {
+    swap16( &wpthdr->num );
+    swap16( &wpthdr->next );
+    for (i=0; i<MAXWPT; i++)
+      swap16( &wpthdr->idx[i] );
+  }
+}
+
+static void swap_wpt(struct wpt *wpt,
+                    void (*swap16)(void *), void (*swap32)(void *)) {
+  if ( swap16 != NULL ) {
+    swap16( &wpt->usecount );
+  }
+  if ( swap32 != NULL ) {
+    swap32( &wpt->pt.x );
+    swap32( &wpt->pt.y );
+    swap32( &wpt->date );
+    swap32( &wpt->time );
+  }
+}
+
+static void swap_rtehdr(struct rtehdr *rtehdr,
+                       void (*swap16)(void *), void (*swap32)(void *)) {
+  int i;
+
+  if ( swap16 != NULL) {
+    swap16( &rtehdr->num );
+    swap16( &rtehdr->next );
+    for (i=0; i<MAXRTE; i++)
+      swap16( &rtehdr->idx[i] );
+    swap16( &rtehdr->rteno );
+  }
+  if ( swap32 != NULL ) {
+    swap32( &rtehdr->id );
+  }
+}
+
+static void swap_rte(struct rte *rte,
+                    void (*swap16)(void *), void (*swap32)(void *)) {
+  int i;
+
+  if (swap16 != NULL) {
+    swap16( &rte->wptnum );
+    for (i=0; i<MAXWPTINRTE; i++)
+      swap16( &rte->wptidx[i] );
+    swap16( &rte->reserved );
+  }
+  if ( swap32 != NULL ) {
+    swap32( &rte->date );
+    swap32( &rte->time );
+  }
+}
+
+static void wpr_swap(struct wprdata *wprdata) {
+  void (*swap16)(void *);
+  void (*swap32)(void *);
+  int i;
+
+  switch( byte_order() ) {
+  case SWAP_NONE:                 /* same byte oder, LITTLE_ENDIAN */
+    return;
+    break;
+  case SWAP_BOTH:                 /* swap words and bytes, BIG_ENDIAN */
+    swap16 = sw_bytes;
+    swap32 = rev_bytes;
+    break;
+  case SWAP_WORDS:                /* swap words, PDP_ENDIAN */
+    swap16 = NULL;
+    swap32 = sw_words;
+    break;
+  case SWAP_BYTES:                /* swap bytes */
+    swap16 = sw_bytes;
+    swap32 = NULL;
+    break;
+  default:
+    return;                       /* never reached */
+  }
+  
+  swap_wpthdr( &(wprdata->wpthdr), swap16, swap32 );
+  for (i=0; i< MAXWPT; i++)
+    swap_wpt( &(wprdata->wpt[i]), swap16, swap32 );
+  swap_rtehdr( &(wprdata->rtehdr), swap16, swap32 );
+  for (i=0; i<MAXRTE; i++)
+    swap_rte( &(wprdata->rte[i]), swap16, swap32 );
+}
+
+static void swap_trkhdr(struct trkhdr *trkhdr,
+                       void (*swap16)(void *), void (*swap32)(void *)) {
+  if ( swap16 != NULL ) {
+    swap16( &(trkhdr->totalpt) );
+    swap16( &(trkhdr->next) );
+  }
+  if ( swap32 != NULL ) {
+    swap32( &(trkhdr->occupied) );
+    swap32( &(trkhdr->show) );
+    swap32( &(trkhdr->fill) );
+  }
+}
+
+static void swap_loghdr(struct loghdr *loghdr,
+                       void (*swap16)(void *), void (*swap32)(void *)) {
+  int i;
+
+  if ( swap16 != NULL ) {
+    swap16( &(loghdr->num) );
+    swap16( &(loghdr->next) );
+  }
+  if ( swap32 != NULL ) {
+    swap32( &(loghdr->id) );
+    swap32( &(loghdr->date) );
+    swap32( &(loghdr->time) );
+  }
+  for (i=0; i<MAXTRK; i++)
+    swap_trkhdr( &(loghdr->trkhdr[i]), swap16, swap32 );
+}
+
+static void swap_trklog(struct trklog *trklog,
+                       void (*swap16)(void *), void (*swap32)(void *)) {
+  int i;
+
+  if ( swap16 != NULL ) {
+    for (i=0; i<MAXPTINTRK; i++) {
+      swap16( &(trklog->sh[i].speed) );
+      swap16( &(trklog->sh[i].height) );
+    }
+  }
+  if ( swap32 != NULL ) {
+    for (i=0; i<MAXPTINTRK; i++) {
+      swap32( &(trklog->pt[i].x) );
+      swap32( &(trklog->pt[i].y) );
+    }
+  }
+}
+
+static void trl_swap(struct trldata *trldata) {
+  void (*swap16)(void *);
+  void (*swap32)(void *);
+  int i;
+
+  switch( byte_order() ) {
+  case SWAP_NONE:                 /* same byte oder, LITTLE_ENDIAN */
+    return;
+    break;
+  case SWAP_BOTH:                 /* swap words and bytes, BIG_ENDIAN */
+    swap16 = sw_bytes;
+    swap32 = rev_bytes;
+    break;
+  case SWAP_WORDS:                /* swap words, PDP_ENDIAN */
+    swap16 = NULL;
+    swap32 = sw_words;
+    break;
+  case SWAP_BYTES:                /* swap bytes */
+    swap16 = sw_bytes;
+    swap32 = NULL;
+    break;
+  default:
+    return;                        /* never reached */
+  }
+
+  swap_loghdr( &(trldata->loghdr), swap16, swap32);
+  for (i=0; i<MAXTRK; i++)
+    swap_trklog( &(trldata->trklog[i]), swap16, swap32);
+}
+
+
+/**************************************************************************/
+
+static void str2lab(char *dest, char *src, int len, char *fmt, int n) {
+  int i,j;
+
+  j = 0;
+  if (src != NULL) {
+    for (i=0; i<len && src[i] != '\0'; i++) {
+      if (isprint(src[i]))
+         dest[j++] = src[i];
+    }
+  }
+  if (j == 0 && fmt != NULL) {
+    snprintf(dest, len, fmt, n);
+    j = strlen(dest);
+  }
+  if ( j < len )
+    memset(dest+j, ' ', len-j);
+}
+
+static void pack_time(time_t t, gbint32 *date, gbint32 *time) {
+  struct tm *tm;
+
+  tm = gmtime(&t);
+  *date = tm->tm_mday | ((tm->tm_mon+1)<<8) | ((tm->tm_year+1900)<<16);
+  *time = t % 86400;
+}
+
+static time_t unpack_time(gbint32 date, gbint32 time) {
+  time_t result;
+  short year, month, day;
+  static int m_to_d[12] =
+    {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
+
+  year  = (date >> 16) & 0xffff;
+  month = (date >> 8) & 0xff;  /* 1-12 */
+  day   = date & 0xff;          /* 1-31 */
+
+  month -= 1;                  /* fit struct tm */
+  year += month / 12;
+  
+  if (month < 0) {
+    year -= 1;
+    month += 12;
+  }
+  result = (year - 1970) * 365 + m_to_d[month];
+  if (month <= 1)
+    year -= 1;
+  result += (year - 1968) / 4;
+  result -= (year - 1900) / 100;
+  result += (year - 1600) / 400;
+  result += day;
+  result -= 1;
+  result *= 86400;
+  result += time;           /* map500 time is inseconds of the day */
+  
+  return result;
+}
+
+/**************************************************************************/
+
+static waypoint * get_wpt(struct wprdata *wprdata, unsigned n) {
+  struct wpthdr *wpthdr;
+  struct wpt *wpt;
+  int j, idx;
+  waypoint *WP;
+
+  wpthdr = &(wprdata->wpthdr);
+  idx = wpthdr->idx[n];
+
+  if (idx == WPT_IDX_NONE || wpthdr->used[idx] == WPT_UNUSED)
+    return NULL;
+  wpt = &(wprdata->wpt[idx]);
+    
+  WP = waypt_new();
+  WP->latitude  = -pt2deg(wpt->pt.y);
+  WP->longitude =  pt2deg(wpt->pt.x);
+  WP->creation_time = unpack_time(wpt->date, wpt->time);
+  for(j=WPT_NAME_LEN-1; j >= 0 && wpt->name[j] == ' '; j--) {};
+  WP->shortname = xstrndup(wpt->name,j+1);
+  for(j=WPT_COMMENT_LEN-1; j >= 0 && wpt->comment[j] == ' '; j--) {};
+  if (j >= 0)
+    WP->description = xstrndup(wpt->comment, j+1);
+  else
+    WP->description = xstrdup("");
+  WP->notes = xstrdup("");
+
+  return WP;
+}
+
+static void wpr_read(void) {
+  struct wprdata wprdata;
+  struct rtehdr *rtehdr;
+  struct rte *rte;
+  int i, j, idx;
+  waypoint *WP;
+  route_head *RT;
+
+  if ( gbfread(&wprdata, sizeof(struct wprdata), 1, fin) != 1 )
+    fatal(MYNAME ": Read error on %s\n", fin->name);
+  wpr_swap(&wprdata);
+  if ( wprdata.wpthdr.id != WPT_HDR_ID ||
+       wprdata.rtehdr.id != RTE_HDR_ID )
+    fatal(MYNAME ": %s is not in Alan .wpr format.\n", fin->name);
+
+  /* waypoints */
+  for (i=0; i<MAXWPT; i++) {
+    WP = get_wpt(&wprdata, i);
+    if ( WP != NULL )
+      waypt_add(WP);
+  }
+
+  /* routes */
+  rtehdr = &(wprdata.rtehdr);
+  for (i=0; i<MAXRTE; i++) {
+    idx = rtehdr->idx[i];
+    if (idx == RTE_IDX_NONE || rtehdr->used[idx] == RTE_UNUSED)
+      continue;
+    rte = &(wprdata.rte[idx]);
+    
+    RT = route_head_alloc();
+    RT->rte_num = i;
+    for(j=RTE_NAME_LEN-1; j >= 0 && rte->name[j] == ' '; j--) {};
+    RT->rte_name = xstrndup(rte->name,j+1);
+    for(j=RTE_COMMENT_LEN-1; j >= 0 && rte->comment[j] == ' '; j--) {};
+    if (j >= 0)
+      RT->rte_desc = xstrndup(rte->comment,j+1);
+    else
+      RT->rte_desc = xstrdup("");
+
+    route_add_head(RT);          
+
+    /* route points */
+    for(j=0; j<rte->wptnum; j++) {
+      WP = get_wpt(&wprdata, rte->wptidx[j]);
+      if ( WP != NULL )
+       route_add_wpt(RT, WP);
+    }
+  }
+}
+
+static void trl_read(void) {
+  struct trldata trldata;
+  struct trkhdr *trkhdr;
+  struct trklog *trklog;
+  waypoint *WP;
+  route_head *TL;
+  int i, j;
+
+  for (i=0; i<MAXTRK; i+=2) {
+    gbfseek(fin, 0x10000 * (i/2), SEEK_SET);
+    if ( gbfread( &(trldata.trklog[i]), sizeof(struct trklog), 2, fin) != 2)
+      fatal(MYNAME ": Read error on %s\n", fin->name);
+  }
+  gbfseek(fin, 0x10000 * MAXTRK/2, SEEK_SET);
+  if ( gbfread( &(trldata.loghdr), sizeof(struct loghdr), 1, fin) != 1)
+    fatal(MYNAME ": Read error on %s\n", fin->name);
+  trl_swap(&trldata);
+  if ( trldata.loghdr.id != TRL_HDR_ID )
+    fatal(MYNAME ": %s is not in Alan .trl format.\n", fin->name);
+
+  for(i=0; i<MAXTRK; i++) {
+    /* track header */
+    trkhdr = &(trldata.loghdr.trkhdr[i]);
+    if (trkhdr->occupied == TRK_UNUSED)
+      continue;
+    TL = route_head_alloc();
+    for(j=TRK_NAME_LEN-1;
+       j >= 0 && (trkhdr->name[j] == ' ' || trkhdr->name[j] == '\0');
+       j--) {};
+    TL->rte_name = xstrndup(trkhdr->name,j+1);
+    for(j=TRK_COMMENT_LEN-1;
+       j >= 0 && (trkhdr->comment[j] == ' ' || trkhdr->comment[j] == '\0');
+       j--) {};
+    TL->rte_desc = xstrndup(trkhdr->comment,j+1);
+    TL->rte_num = i;
+
+    track_add_head(TL);          
+
+    /* track points */
+    trklog = &(trldata.trklog[i]);
+    for(j=0; j<trkhdr->totalpt; j++) {
+      WP = waypt_new();
+      WP->latitude  = -pt2deg(trklog->pt[j].y);
+      WP->longitude =  pt2deg(trklog->pt[j].x);
+      WP->altitude  =  hgt2m(trklog->sh[j].height);
+      if ( trklog->sh[j].speed >= 0 )
+       WP->speed     =  sp2mps(trklog->sh[j].speed);
+      else                             /* bad speed < 0 - set to 0.0 */
+       WP->speed     =  unknown_speed;
+      track_add_wpt(TL, WP);
+    }
+  }
+}
+
+/**************************************************************************/
+
+static int find_wpt(struct wprdata *wprdata, const waypoint *WP) {
+  struct wpt pattern, *wpt;
+  int i, wpt_idx;
+
+  str2lab(pattern.name, WP->shortname, WPT_NAME_LEN, NULL, 0);
+  pattern.pt.x = deg2pt(WP->longitude);
+  pattern.pt.y = deg2pt(-WP->latitude);
+
+  wpt = wprdata->wpt;
+  for (i=0; i<MAXWPT; i++) {
+    wpt_idx = wprdata->wpthdr.idx[i]; 
+    if ( wpt_idx == WPT_IDX_NONE ||
+        wprdata->wpthdr.used[wpt_idx] == WPT_UNUSED ) 
+      continue;
+    if ( strncmp( wpt[wpt_idx].name, pattern.name, WPT_NAME_LEN) == 0 &&
+        wpt[wpt_idx].pt.x == pattern.pt.x &&
+        wpt[wpt_idx].pt.y == pattern.pt.y )
+      return i;
+  }
+
+  return -1;
+}
+
+static int add_wpt(struct wprdata *wprdata, const waypoint *WP,int isroute) {
+  struct wpthdr *wpthdr;
+  int hdr_idx, wpt_idx;
+  struct wpt *wpt;
+  int i;
+
+  wpthdr = &(wprdata->wpthdr);
+
+  hdr_idx = find_wpt(wprdata, WP);
+  if ( hdr_idx >= 0 ) {
+    /* duplicate waypoint */
+    if (isroute) {
+      wpt = &(wprdata->wpt[wpthdr->idx[hdr_idx]]);
+      wpt->usecount ++;
+    }
+    /*
+    warning(MYNAME ": using duplicate waypoint '%s' at (%f°, %f°)\n",
+           WP->shortname, WP->latitude, WP->longitude);
+    */
+    return hdr_idx;
+  }
+
+  for (i=0; i<MAXWPT && wpthdr->idx[i] != WPT_IDX_NONE; i++) { }
+  hdr_idx = i;
+  for (i=0; i<MAXWPT && wpthdr->used[i] != WPT_UNUSED; i++) { }
+  wpt_idx = i;
+  if (wpthdr->num >= MAXWPT || hdr_idx >= MAXWPT || wpt_idx >= MAXWPT )
+    fatal(MYNAME ": Can't store more than %u waypoints\n", MAXWPT);
+
+  wpt = &(wprdata->wpt[wpt_idx]);
+  str2lab(wpt->name, WP->shortname, WPT_NAME_LEN, "W%05d", wpt_idx);
+  str2lab(wpt->comment, WP->description, WPT_COMMENT_LEN, NULL, 0);
+  wpt->pt.x = deg2pt(WP->longitude);
+  wpt->pt.y = deg2pt(-WP->latitude);
+  wpt->usecount = isroute ? 1 : 0;
+  wpt->checked  = isroute ? 0 : 1;
+  wpt->reserved = 0;
+  pack_time(WP->creation_time, &(wpt->date), &(wpt->time));
+
+  wpthdr->idx[hdr_idx] = wpt_idx;
+  wpthdr->used[wpt_idx] = WPT_USED;
+  wpthdr->num++;
+  wpthdr->next++;
+  if (wpthdr->next >= MAXWPT)          /* overrun */
+    wpthdr->next = 0;
+
+  return hdr_idx;
+}
+
+static void wpr_waypoint(const waypoint *WP) {
+  add_wpt(&WPR, WP, 0);
+}
+
+static void wpr_route_hdr(const route_head *RT) {
+  struct rtehdr *rtehdr;
+  int hdr_idx, rte_idx;
+  struct rte *rte;
+  int i;
+  
+  rtehdr = &(WPR.rtehdr);
+  for (i=0; i<MAXRTE && rtehdr->idx[i] != RTE_IDX_NONE; i++) { }
+  hdr_idx = i;
+  for (i=0; i<MAXRTE && rtehdr->used[i] != RTE_UNUSED; i++) { }
+  rte_idx = i;
+  if (rtehdr->num >= MAXRTE || hdr_idx >= MAXRTE || rte_idx >= MAXRTE )
+    fatal(MYNAME ": Can't store more than %u routes", MAXRTE);
+
+  rte = &(WPR.rte[rte_idx]);
+  str2lab(rte->name, RT->rte_name, RTE_NAME_LEN, "R%03d", rte_idx);
+  str2lab(rte->comment, RT->rte_desc, RTE_COMMENT_LEN, NULL, 0);
+  pack_time(time(NULL), &(rte->date), &(rte->time));
+
+  rtehdr->idx[hdr_idx] = rte_idx;
+  rtehdr->used[rte_idx] = RTE_USED;
+  rtehdr->num++;
+  rtehdr->next++;
+  if (rtehdr->next >= MAXRTE)          /* overrun */
+    rtehdr->next = 0;
+
+  /* if you want the new route to be active, uncomment the next line */
+  /* rtehdr->rteno = rte_idx; */
+}
+
+static void wpr_route_wpt(const waypoint *WP) {
+  struct rte *rte;
+  int wpt_idx;
+
+  rte = &(WPR.rte[WPR.rtehdr.num -1]);
+  if ( rte->wptnum >= MAXWPTINRTE )
+    fatal(MYNAME ": Can't store more than %u waypoints per route", MAXWPTINRTE);
+
+  wpt_idx = add_wpt(&WPR, WP, 1);
+
+  rte->wptidx[rte->wptnum] = wpt_idx;
+  rte->wptnum ++;
+}
+
+static void wpr_route_trl(const route_head *RT) {
+  /* should we do some final sanity checks? */
+}
+
+static void wpr_write(void) {
+  int i;
+
+  WPR.wpthdr.id = WPT_HDR_ID;
+  WPR.wpthdr.num = WPR.wpthdr.next = 0;
+  for (i=0; i<MAXWPT; i++) {
+    WPR.wpthdr.idx[i]  = WPT_IDX_NONE;
+    WPR.wpthdr.used[i] = WPT_UNUSED;
+  }
+  memset(WPR.wpt, 0, MAXWPT * sizeof(struct wpt));
+  WPR.rtehdr.id = RTE_HDR_ID;
+  WPR.rtehdr.num = WPR.rtehdr.next = 0;
+  for (i=0; i<MAXRTE; i++) {
+    WPR.rtehdr.idx[i] = RTE_IDX_NONE;
+    WPR.rtehdr.used[i] = RTE_UNUSED;
+  }
+  WPR.rtehdr.rteno = RTE_RTENO_NONE;
+  memset(WPR.rte, 0, MAXRTE * sizeof(struct rte));
+
+  waypt_disp_all(wpr_waypoint);
+  route_disp_all(wpr_route_hdr, wpr_route_trl, wpr_route_wpt);
+
+  wpr_swap(&WPR);
+  if ( gbfwrite(&WPR, sizeof(struct wprdata), 1, fout) != 1 )
+    fatal(MYNAME ": Write error on %s\n", fout->name);
+}
+
+/**************************************************************************/
+
+static void trl_track_hdr(const route_head *TL) {
+  struct trkhdr *trkhdr;
+  int idx, l;
+
+  trkhdr = TRL.loghdr.trkhdr;
+  
+  for (idx=0; idx< MAXTRK && trkhdr[idx].occupied != TRK_UNUSED; idx++) {};
+  if (idx >= MAXTRK)
+    fatal(MYNAME ": Can't store more than %u tracklogs", MAXTRK);
+
+  if ( TL->rte_name != NULL )
+    strncpy(trkhdr[idx].name, TL->rte_name, TRK_NAME_LEN);
+  if ( *(trkhdr[idx].name) == '\0' )
+    sprintf(trkhdr[idx].name, "T%03d", idx);
+  trkhdr[idx].name[TRK_NAME_LEN-1] = '\0';
+
+  if ( TL->rte_desc != NULL ) {
+    strncpy(trkhdr[idx].comment, TL->rte_desc, TRK_COMMENT_LEN);
+    l = strlen(TL->rte_desc);
+    if ( l < TRK_COMMENT_LEN-1 )
+      memset(trkhdr[idx].comment + l, ' ', TRK_COMMENT_LEN - l);
+  }
+  trkhdr[idx].comment[TRK_COMMENT_LEN-1] = '\0';
+
+  trkhdr[idx].comment[TRK_COMMENT_LEN-1] = '\0';
+  trkhdr[idx].occupied = TRK_USED;
+  trkhdr[idx].totalpt = 0;
+  trkhdr[idx].next = 0;
+
+  TRL.loghdr.num = idx;
+}
+
+static void trl_track_wpt(const waypoint *WP) {
+  struct trklog *trklog;
+  struct trkhdr *trkhdr;
+  int trk_idx, log_idx;
+  
+  trk_idx = TRL.loghdr.num;
+
+  trkhdr = &(TRL.loghdr.trkhdr[trk_idx]);
+  if ( trkhdr->totalpt >= MAXPTINTRK )
+    fatal(MYNAME ": Can't store more than %u points per track", MAXPTINTRK);
+  log_idx = trkhdr->next;
+
+  trklog = &(TRL.trklog[trk_idx]);
+  trklog->pt[log_idx].x = deg2pt( WP->longitude);
+  trklog->pt[log_idx].y = deg2pt(-WP->latitude);
+  if ( WP->speed != unknown_speed )
+    trklog->sh[log_idx].speed =  mps2sp(WP->speed);
+  if ( WP->altitude != unknown_alt )
+    trklog->sh[log_idx].height = m2hgt(WP->altitude);
+
+  trkhdr->totalpt ++;
+  trkhdr->next = trkhdr->totalpt;
+}
+
+static void trl_track_tlr(const route_head *TL) {
+  struct trkhdr *trkhdr;
+  int trk_idx;
+
+  trk_idx = TRL.loghdr.num;
+  trkhdr = &(TRL.loghdr.trkhdr[trk_idx]);
+
+  if ( trkhdr->totalpt == 0 )
+    trkhdr->occupied = TRK_UNUSED;
+
+  TRL.loghdr.num = -1;
+}
+
+static void trl_write(void) {
+  struct trkhdr *trkhdr;
+  void *buf;
+  int i;
+  size_t fill;
+
+  TRL.loghdr.id = TRL_HDR_ID;
+  TRL.loghdr.num = TRL.loghdr.next = -1;
+  TRL.loghdr.date = TRL.loghdr.time = 0;
+  for (i=0; i<MAXTRK; i++) {
+    trkhdr = &(TRL.loghdr.trkhdr[i]);
+    trkhdr->totalpt = 0;
+    trkhdr->next = 0;
+    memset(trkhdr->name, 0, TRK_NAME_LEN);
+    memset(trkhdr->comment, ' ', TRK_COMMENT_LEN);
+    trkhdr->comment[TRK_COMMENT_LEN-1] = '\0';
+    trkhdr->occupied = TRK_UNUSED;
+    trkhdr->show = TRK_HIDE;
+    trkhdr->fill = TRK_FILL;
+  }
+  memset(TRL.trklog, 0xff, sizeof(struct trklog) * MAXTRK);
+
+  track_disp_all(trl_track_hdr, trl_track_tlr, trl_track_wpt);
+
+  trl_swap(&TRL);
+  
+  fill =  0x10000 - 2 * sizeof(struct trklog);
+  buf = xmalloc(fill);
+  if (buf == NULL)
+    fatal(MYNAME ": Not enough memory\n");
+  memset(buf, 0xff, fill);
+
+  for (i=0; i<MAXTRK; i+=2) {
+    if (gbfwrite(&(TRL.trklog[i]), sizeof(struct trklog), 2, fout) != 2 ||
+       gbfwrite(buf, fill, 1, fout) != 1 )
+      fatal(MYNAME ": Write error on %s\n", fout->name);
+  }
+  xfree(buf);
+
+  fill = 0x1000 - sizeof(struct loghdr);
+  buf = xmalloc(fill);
+  if (buf == NULL)
+    fatal(MYNAME ": Not enough memory\n");
+  memset(buf, 0xff, fill);
+
+  if ( gbfwrite(&(TRL.loghdr), sizeof(struct loghdr), 1, fout) != 1 ||
+       gbfwrite(buf, fill, 1, fout) != 1 ) 
+    fatal(MYNAME ": Write error on %s\n", fout->name);
+  xfree(buf);
+}
+
+/**************************************************************************/
+
+static void alan_rd_init(const char *fname) {
+  fin = gbfopen(fname, "r", MYNAME);
+}
+
+static void alan_rd_deinit(void) {
+  gbfclose(fin);
+  fin = NULL;
+}
+
+
+static void alan_wr_init(const char *fname) {
+  fout = gbfopen(fname, "w", MYNAME);
+}
+
+static void alan_wr_deinit(void) {
+  gbfclose(fout);
+  fout = NULL;
+}
+
+
+static void alan_exit(void) {
+  return;
+}
+
+/**************************************************************************/
+
+ff_vecs_t alanwpr_vecs = {
+       ff_type_file,
+       { 
+         ff_cap_read | ff_cap_write    /* waypoints */,
+         ff_cap_none                   /* tracks */,
+         ff_cap_read | ff_cap_write    /* routes */
+       },
+       alan_rd_init,   
+       alan_wr_init,   
+       alan_rd_deinit, 
+       alan_wr_deinit, 
+       wpr_read,
+       wpr_write,
+       alan_exit,
+       wpr_args,
+       CET_CHARSET_ASCII, 0 /* ascii is the expected character set */
+                             /* not fixed, can be changed through command
+                               line parameter */
+};
+
+ff_vecs_t alantrl_vecs = {
+       ff_type_file,
+       { 
+         ff_cap_none                   /* waypoints */,
+         ff_cap_read | ff_cap_write    /* tracks */,
+         ff_cap_none                   /* routes */
+       },
+       alan_rd_init,   
+       alan_wr_init,   
+       alan_rd_deinit, 
+       alan_wr_deinit, 
+       trl_read,
+       trl_write,
+       alan_exit,
+       trl_args,
+       CET_CHARSET_ASCII, 0 /* ascii is the expected character set */
+                             /* not fixed, can be changed through command
+                               line parameter */
+};
diff --git a/an1.c b/an1.c
index c6483eb61da335e94b5f7363cefeef389efbb6ec..684579598ddfd7b118f1914622de571b2d4ae803 100644 (file)
--- a/an1.c
+++ b/an1.c
@@ -1266,7 +1266,11 @@ my_write( void )
 
 ff_vecs_t an1_vecs = {
        ff_type_file,
-       FF_CAP_RW_ALL,
+       { 
+               ff_cap_read | ff_cap_write      /* waypoints */, 
+               ff_cap_write                    /* tracks */, 
+               ff_cap_read | ff_cap_write      /* routes */, 
+       },
        rd_init,
        wr_init,
        rd_deinit,
index 398fe378886e410e96f7e60c356894a553385ff4..d7e70da6f45fd8f5121fdea3d82849cd7cb4bab5 100644 (file)
@@ -29,7 +29,7 @@
 
 #define RECORD_LEN     344
 
-static FILE *fin;
+static gbfile *fin;
 
 static
 arglist_t axim_gpb_args[] = {
@@ -124,13 +124,13 @@ decode_buff(const char *buff, route_head *track)
 static void
 axim_gpb_rd_init(const char *fname)
 {
-       fin = xfopen(fname, "rb", MYNAME);
+       fin = gbfopen(fname, "rb", MYNAME);
 }
 
 static void 
 axim_gpb_rd_deinit(void)
 {
-       fclose(fin);
+       gbfclose(fin);
 }
 
 static void
@@ -139,18 +139,10 @@ axim_gpb_read(void)
        char buff[RECORD_LEN];
        route_head *track = NULL;
        size_t bytes;
-       long filesize, left;
 
-       fseek(fin, 0, SEEK_END);
-       filesize = ftell(fin);
-
-       left = filesize - ((filesize / RECORD_LEN) * RECORD_LEN);
-       is_fatal((left != 0), MYNAME ": Invalid or unsupported file (filesize).");
-       
-       fseek(fin, 0, SEEK_SET);        /* seek file to start */
-       
-       while ((bytes = fread(buff, 1, RECORD_LEN, fin)))
+       while ((bytes = gbfread(buff, 1, RECORD_LEN, fin)))
        {
+               is_fatal((bytes != RECORD_LEN), MYNAME ": Invalid or unsupported file (filesize).");
                if (track == NULL)
                {
                        track = route_head_alloc();
diff --git a/bcr.c b/bcr.c
index 657d21733180b30ed3bb3216e27f6bf40b788432..d212f3e3dc1f3e884cd73968a0a715df23230718 100644 (file)
--- a/bcr.c
+++ b/bcr.c
@@ -2,7 +2,7 @@
 
     Support for Motorrad Routenplaner (Map&Guide) .bcr files.
 
-    Copyright (C) 2005-2006 Olaf Klein, o.b.klein@gpsbabel.org
+    Copyright (C) 2005-2007 Olaf Klein, o.b.klein@gpsbabel.org
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -21,6 +21,8 @@
 
 /*
     2006/01/22: reader simplified with inifile library
+    2007/01/30: new option prefer_shortnames
+               don't check global_opts.objective
 */
 
 #include "defs.h"
@@ -43,7 +45,7 @@
     but this seems to be used by Map&Guide when exporting to XML. 
 */
 
-static FILE *fout;
+static gbfile *fout;
 static char *filename;
 static int curr_rte_num, target_rte_num;
 static double radius;
@@ -54,12 +56,18 @@ static inifile_t *ini;
 static char *rtenum_opt;
 static char *rtename_opt;
 static char *radius_opt;
+static char *prefer_shortnames_opt;
 
 static
 arglist_t bcr_args[] = {
-       {"index", &rtenum_opt, "Index of route to write (if more the one in source)", NULL, ARGTYPE_INT, "1", NULL },
-       {"name", &rtename_opt, "New name for the route", NULL, ARGTYPE_STRING, ARG_NOMINMAX },
-       {"radius", &radius_opt, "Radius of our big earth (default 6371000 meters)", "6371000", ARGTYPE_FLOAT, ARG_NOMINMAX },
+       {"index", &rtenum_opt, "Index of route to write (if more the one in source)", 
+               NULL, ARGTYPE_INT, "1", NULL },
+       {"name", &rtename_opt, "New name for the route", 
+               NULL, ARGTYPE_STRING, ARG_NOMINMAX },
+       {"radius", &radius_opt, "Radius of our big earth (default 6371000 meters)", "6371000",
+               ARGTYPE_FLOAT, ARG_NOMINMAX },
+       {"prefer_shortnames", &prefer_shortnames_opt, "Use shortname instead of description",
+               NULL, ARGTYPE_BOOL, ARG_NOMINMAX },
        ARG_TERMINATOR
 };
 
@@ -104,8 +112,8 @@ bcr_create_waypts_from_route(route_head *route)
        
        QUEUE_FOR_EACH(&route->waypoint_list, elem, tmp) 
        {
-           wpt = waypt_dupe((waypoint *) elem);
-           waypt_add(wpt);
+               wpt = waypt_dupe((waypoint *) elem);
+               waypt_add(wpt);
        }
 }
 
@@ -204,14 +212,14 @@ static void
 bcr_wr_init(const char *fname)
 {
        filename = xstrdup(fname);
-       fout = xfopen(fname, "wb", MYNAME);
+       fout = gbfopen(fname, "wb", MYNAME);
        bcr_init_radius();
 }
 
 static void
 bcr_wr_deinit(void)
 {
-       fclose(fout);
+       gbfclose(fout);
        xfree(filename);
 }
 
@@ -225,22 +233,22 @@ bcr_write_wpt(const waypoint *wpt)
 {
 }
 
-void bcr_write_line(FILE *fout, const char *key, int *index, const char *value)
+void bcr_write_line(gbfile *fout, const char *key, int *index, const char *value)
 {
        if (value == NULL)                              /* this is mostly used in the world of windows */
        {                                               /* so we respectfully add a CR/LF on each line */
-           fprintf(fout, "%s\r\n", key);
+               gbfprintf(fout, "%s\r\n", key);
        }
        else
        {
-           char *tmp;
-           
-           tmp = (value != NULL) ? xstrdup(value) : xstrdup("");
-           if (index != NULL)
-               fprintf(fout, "%s%d=%s\r\n", key, *index, tmp);
-           else
-               fprintf(fout, "%s=%s\r\n", key, tmp);
-           xfree(tmp);
+               char *tmp;
+               
+               tmp = (value != NULL) ? xstrdup(value) : xstrdup("");
+               if (index != NULL)
+                       gbfprintf(fout, "%s%d=%s\r\n", key, *index, tmp);
+               else
+                       gbfprintf(fout, "%s=%s\r\n", key, tmp);
+               xfree(tmp);
        }
 }
 
@@ -257,34 +265,33 @@ bcr_route_header(const route_head *route)
        if (curr_rte_num != target_rte_num) return;     
        
        bcr_write_line(fout, "[CLIENT]", NULL, NULL);                   /* client section */
-
        bcr_write_line(fout, "REQUEST", NULL, "TRUE");
        
        c = route->rte_name;
        if (rtename_opt != 0) c = rtename_opt;
        if (c != NULL)
-           bcr_write_line(fout, "ROUTENAME", NULL, c);
+               bcr_write_line(fout, "ROUTENAME", NULL, c);
        else
-           bcr_write_line(fout, "ROUTENAME", NULL, "Route");
+               bcr_write_line(fout, "ROUTENAME", NULL, "Route");
 
        bcr_write_line(fout, "DESCRIPTIONLINES", NULL, "1");
        bcr_write_line(fout, "DESCRIPTION1", NULL, "");
        
        i = 0;
+
        QUEUE_FOR_EACH(&route->waypoint_list, elem, tmp) 
        {
-           i++;
-           wpt = (waypoint *) elem;
-           
-           strncpy(symbol, "Standort", sizeof(symbol));
-           if (wpt->icon_descr != 0)
-           {
-               icon = gt_find_icon_number_from_desc(wpt->icon_descr, MAPSOURCE);
-               if ((icon >= 69) && (icon <= 72))
-                   strncpy(symbol, "Town", sizeof(symbol));
-           }
-           snprintf(buff, sizeof(buff), "%s,%s", symbol, "999999999");
-           bcr_write_line(fout, "STATION", &i, buff);
+               i++;
+               wpt = (waypoint *) elem;
+               
+               strncpy(symbol, "Standort", sizeof(symbol));
+               if (wpt->icon_descr != 0) {
+                       icon = gt_find_icon_number_from_desc(wpt->icon_descr, MAPSOURCE);
+                       if ((icon >= 69) && (icon <= 72))
+                               strncpy(symbol, "Town", sizeof(symbol));
+               }
+               snprintf(buff, sizeof(buff), "%s,%s", symbol, "999999999");
+               bcr_write_line(fout, "STATION", &i, buff);
        }
            
        bcr_write_line(fout, "[COORDINATES]", NULL, NULL);              /* coords section */
@@ -295,18 +302,18 @@ bcr_route_header(const route_head *route)
        i = 0;
        QUEUE_FOR_EACH(&route->waypoint_list, elem, tmp) 
        {
-           i++;
-           wpt = (waypoint *) elem;
-           
-           bcr_wgs84_to_mercator(wpt->latitude, wpt->longitude, &north, &east);
-           
-           if (north > nmax) nmax = north;
-           if (east > emax) emax = east;
-           if (north < nmin) nmin = north;
-           if (east < emin) emin = east;
-           
-           snprintf(buff, sizeof(buff), "%d,%d", east, north);
-           bcr_write_line(fout, "STATION", &i, buff);
+               i++;
+               wpt = (waypoint *) elem;
+               
+               bcr_wgs84_to_mercator(wpt->latitude, wpt->longitude, &north, &east);
+               
+               if (north > nmax) nmax = north;
+               if (east > emax) emax = east;
+               if (north < nmin) nmin = north;
+               if (east < emin) emin = east;
+               
+               snprintf(buff, sizeof(buff), "%d,%d", east, north);
+               bcr_write_line(fout, "STATION", &i, buff);
        }
        
        bcr_write_line(fout, "[DESCRIPTION]", NULL, NULL);              /* descr. section */
@@ -314,11 +321,12 @@ bcr_route_header(const route_head *route)
        i = 0;
        QUEUE_FOR_EACH(&route->waypoint_list, elem, tmp) 
        {
-           i++;
-           wpt = (waypoint *) elem;
-           c = wpt->description;
-           if (c == NULL) c = wpt->shortname;
-           bcr_write_line(fout, "STATION", &i, c);
+               i++;
+               wpt = (waypoint *) elem;
+               c = wpt->description;
+               if (prefer_shortnames_opt || (c == NULL) || (*c == '\0'))
+                       c = wpt->shortname;
+               bcr_write_line(fout, "STATION", &i, c);
        }
        
        bcr_write_line(fout, "[ROUTE]", NULL, NULL);                    /* route section */
@@ -331,21 +339,16 @@ bcr_route_header(const route_head *route)
 static void
 bcr_data_write(void)
 {
-       
-       if (global_opts.objective == rtedata)
-       {
-           target_rte_num = 1;
-           
-           if (rtenum_opt != NULL)
-           {
+       target_rte_num = 1;
+               
+       if (rtenum_opt != NULL) {
                target_rte_num = atoi(rtenum_opt);
                if (((unsigned)target_rte_num > route_count()) || (target_rte_num < 1))
-                   fatal(MYNAME ": invalid route number %d (1..%d))!\n", 
-                       target_rte_num, route_count());
-           }
-           curr_rte_num = 0;
-           route_disp_all(bcr_route_header, bcr_route_trailer, bcr_write_wpt);
+                       fatal(MYNAME ": invalid route number %d (1..%d))!\n", 
+                               target_rte_num, route_count());
        }
+       curr_rte_num = 0;
+       route_disp_all(bcr_route_header, bcr_route_trailer, bcr_write_wpt);
 }
 
 ff_vecs_t bcr_vecs = {
diff --git a/cet.c b/cet.c
index abc8b64b69108f2bca72491fd8ae61d313819cef..99a99a4f288af3b5311a3841761a6eff593e8698 100644 (file)
--- a/cet.c
+++ b/cet.c
@@ -305,6 +305,7 @@ cet_str_any_to_utf8(const char *src, const cet_cs_vec_t *vec)
 
        cin = (char *)src;
        if (cin == NULL) return NULL;
+       if (vec->ucs4_count == 0) return xstrdup(src); /* UTF-8 -> UTF-8 */
 
        len = 0;
        while (*cin != '\0')            /* determine length of resulting UTF-8 string */
index 3af5b093d2a64cfd76b77a3014d806372e6fab83..6916612756232e68ee8e82743bb67964cd540187 100644 (file)
@@ -1,5 +1,6 @@
 /*
     Copyright (C) 2004 Justin Broughton, justinbr@earthlink.net
+    Copyright (C) 2007 Robert Lipe, robertlipe@gpsbabel.org
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -29,8 +30,7 @@
 
 #include "uuid.h"
 
-static FILE *fd;
-static FILE *ofd;
+static gbfile *fd, *ofd;
 
 #define MYNAME "coastexp"
 #define MY_CBUF 4096
@@ -96,7 +96,9 @@ ce_add_mark_to_route(ce_route *route, ce_mark *mark)
 static void
 ce_free_mark(ce_mark *mark)
 {
-       xfree(mark->id);
+       dequeue(&mark->Q);
+       if (mark->id)
+               xfree(mark->id);
        if (mark->created)
                xfree(mark->created);
        xfree(mark);
@@ -116,6 +118,16 @@ ce_free_route(ce_route *route)
        // Don't free the waypoint since this is done elsewhere
 }
 
+/* Allocate a mark */
+static ce_mark *
+ce_alloc_mark(const waypoint *wpt, const char *id)
+{
+       ce_mark *res = xcalloc(sizeof(ce_mark), 1);
+       res->id = (char *) id;
+       res->wp = (waypoint *) wpt;
+       return res;
+}
+
 #if !HAVE_LIBEXPAT
 void
 ce_rd_init(const char *fname)
@@ -146,18 +158,14 @@ ce_start(void *data, const XML_Char *xml_el, const XML_Char **xml_attr)
                                // Create a CE route object and add it to the list of routes
                                currentRoute = (ce_route *) xcalloc(sizeof (ce_route), 1);
                                currentRoute->id=xstrdup(ap[1]);
-                               if (doing_rtes) 
-                                       currentRoute->r = route_head_alloc();
+                               currentRoute->r = route_head_alloc();
                                QUEUE_INIT(&currentRoute->ce_mark_head);
-                               if (doing_rtes) 
-                                       ce_add_route(currentRoute);
+                               ce_add_route(currentRoute);
                        }
                }
        } else if (0 == strcmp(el, "Mark")) {
                inMark = 1;
-               currentMark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
-               currentMark->wp = NULL;
-               currentMark->used = 0;
+               currentMark = ce_alloc_mark(NULL, NULL);
                ce_add_mark(currentMark);
                for (ap = attr; *ap; ap+=2) {
                        if (0 == strcmp(ap[0], "id")) {
@@ -179,9 +187,7 @@ ce_end(void *data, const XML_Char *xml_el)
 {
        const char *el = xml_convert_to_char_string(xml_el);
        if (0 == strcmp(el, "Route")) {
-               if (!doing_rtes)
-                       ce_free_route(currentRoute);
-               inRoute = 0;
+               inRoute = 0; /* ??? */
        }
        else if (0 == strcmp(el, "Mark"))
                inMark = 0;
@@ -215,10 +221,7 @@ ce_cdata(void *dta, const XML_Char *xml_s, int len)
                        if (inRoute) {
                                // We are processing the marks in a route so create a CE mark object
                                // and add it to the current route
-                               ce_mark *mark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
-                               mark->id = xstrdup(s);
-                               mark->created = NULL;
-                               mark->wp = NULL;
+                               ce_mark *mark = (ce_mark *) ce_alloc_mark(NULL, xstrdup(s));
                                ce_add_mark_to_route(currentRoute, mark);
                        }
                } else if (0 == strcmp(element, "Position")) {
@@ -285,7 +288,6 @@ ce_cdata(void *dta, const XML_Char *xml_s, int len)
                                }
                        }
                        else if (inRoute) {
-                               if (doing_rtes)
                                currentRoute->r->rte_name = xstrdup(s);
                        }
                } else if (0 == strcmp(element, "Description")) {
@@ -312,7 +314,7 @@ ce_cdata(void *dta, const XML_Char *xml_s, int len)
 void
 ce_rd_init(const char *fname)
 {
-       fd = xfopen(fname, "r", MYNAME);
+       fd = gbfopen(fname, "r", MYNAME);
        QUEUE_INIT(&ce_route_head);
        QUEUE_INIT(&ce_mark_head);
 
@@ -333,10 +335,11 @@ void
 ce_read(void)
 {
        int len;
-       char buf[MY_CBUF];
+       char buf[MY_CBUF + 1];
 
-       while ((len = fread(buf, 1, sizeof(buf), fd))) {
-               if (!XML_Parse(psr, buf, len, feof(fd))) {
+       while ((len = gbfread(buf, 1, sizeof(buf) - 1, fd))) {
+               buf[len] = '\0';
+               if (!XML_Parse(psr, buf, len, gbfeof(fd))) {
                        fatal(MYNAME ":Parse error at %d: %s\n",
                                (int) XML_GetCurrentLineNumber(psr),
                                XML_ErrorString(XML_GetErrorCode(psr)));
@@ -397,7 +400,6 @@ ce_remove_used_marks(void)
                ce_mark *mark = (ce_mark *) elem;
                if (mark->used)
                {
-                       dequeue(elem);
                        if (mark->wp)
                                waypt_free(mark->wp);
                        ce_free_mark(mark);
@@ -444,11 +446,9 @@ ce_rd_deinit(void)
        */
        queue *elem, *tmp;
 
-       if (doing_rtes) {
-               ce_fix_route_mark_waypoints();
+       ce_fix_route_mark_waypoints();
        ce_check_route_names();
-               ce_remove_used_marks();
-       }
+       ce_remove_used_marks();
 
        // Log results
        if (global_opts.debug_level > 1)
@@ -457,7 +457,6 @@ ce_rd_deinit(void)
        // Add routes to GPSBabel
        QUEUE_FOR_EACH(&ce_route_head, elem, tmp) {
                ce_route *route = (ce_route *) elem;
-               if (doing_rtes) {
                queue *elem2, *tmp2;
                route_add_head(route->r);
                QUEUE_FOR_EACH(&route->ce_mark_head, elem2, tmp2) {
@@ -467,7 +466,6 @@ ce_rd_deinit(void)
                        else
                                printf("Undefined mark: %s\n", mark->id);
                }
-               }
                ce_free_route(route);
        }
 
@@ -478,7 +476,7 @@ ce_rd_deinit(void)
                ce_free_mark(mark);
        }
 
-       fclose(fd);
+       gbfclose(fd);
        xfree(element);
        xfree(cdatastr);
 }
@@ -494,13 +492,14 @@ ce_wr_init(const char *fname)
        uuid_buffer = xcalloc(MY_UBUF,1);
        xml_buffer = xcalloc(MY_XBUF, 1);
 
-       ofd = xfopen(fname, "w", MYNAME);
+       ofd = gbfopen(fname, "w", MYNAME);
+       srand(gpsbabel_now);
 }
 
 void
 ce_wr_deinit(void)
 {
-       fclose(ofd);
+       gbfclose(ofd);
 
        // Free the buffers used for writing
        xfree(time_buffer);
@@ -512,7 +511,7 @@ ce_wr_deinit(void)
 static char *
 ce_gen_creation_time(time_t tm)
 {
-       xml_fill_in_time(time_buffer, tm, XML_SHORT_TIME);
+       xml_fill_in_time(time_buffer, tm, 0, XML_SHORT_TIME);
        return time_buffer;
 }
 
@@ -541,11 +540,9 @@ ce_gen_uuid(void)
 static void
 ce_route_hdr(const route_head *rte)
 {
-       if (doing_rtes) {
-               sprintf(xml_buffer, "{%s}", ce_gen_uuid());
-               write_xml_entity_begin2(ofd, "\t", "Route", "created", ce_gen_current_time(), "id", xml_buffer);
-               write_xml_entity_begin0(ofd, "\t\t", "Marks");
-       }
+       sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+       write_xml_entity_begin2(ofd, "\t", "Route", "created", ce_gen_current_time(), "id", xml_buffer);
+       write_xml_entity_begin0(ofd, "\t\t", "Marks");
 }
 
 /* Generate route body XML */
@@ -554,23 +551,21 @@ ce_route_disp(const waypoint *waypointp)
 {
        char *uuid = ce_gen_uuid();
        char *id = xcalloc(strlen(uuid)+3, 1);
+               
        sprintf(id, "{%s}", uuid);
-       currentMark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
-       currentMark->id = id;
-       currentMark->wp = (waypoint *) waypointp;
+       currentMark = ce_alloc_mark(waypointp, id);
        ENQUEUE_TAIL(&ce_mark_head, &currentMark->Q);
-       fprintf(ofd, "\t\t\t%s\n", id); // CE's departure from XML standard!
+
+       gbfprintf(ofd, "\t\t\t%s\n", id); // CE's departure from XML standard!
 }
 
 /* Generate route trailer XML */
 static void
 ce_route_tlr(const route_head *rte)
 {
-       if (doing_rtes) {
-               write_xml_entity_end(ofd, "\t\t", "Marks");
-               write_optional_xml_entity(ofd, "\t\t", "Name", rte->rte_name);
-               write_xml_entity_end(ofd, "\t", "Route");
-       }
+       write_xml_entity_end(ofd, "\t\t", "Marks");
+       write_optional_xml_entity(ofd, "\t\t", "Name", rte->rte_name);
+       write_xml_entity_end(ofd, "\t", "Route");
 }
 
 /* Generate waypoint body XML */
@@ -595,13 +590,59 @@ ce_waypt_pr(const waypoint *wp)
        write_optional_xml_entity(ofd, "\t\t", "Name", wp->shortname);
 }
 
-/* Generate a standalone mark XML */
+static char *
+ce_find_uuid(const waypoint *wpt)
+{
+       queue *elem, *tmp;
+
+       QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+               ce_mark *mark = (ce_mark *) elem;
+               if (mark->wp == wpt) {
+                       return mark->id;
+               }
+       }
+       return NULL;
+}
+
+static waypoint *
+ce_find_wpt(const waypoint *wpt)
+{
+       queue *elem, *tmp;
+
+       QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+               ce_mark *mark = (ce_mark *) elem;
+               if ((mark->wp->shortname == wpt->shortname) &&
+                   (mark->wp->latitude == wpt->latitude) &&
+                   (mark->wp->longitude == wpt->longitude))
+                       return mark->wp;
+       }
+       return NULL;
+}
+
+/* Generate a mark XML; look for created id's */
 static void
 ce_mark_pr(const waypoint *wp)
 {
+       char *id;
+       
+       if (inRoute) {
+               id = ce_find_uuid(wp);
+               if (id == NULL) {
+                       sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+                       id = xml_buffer;
+               }
+       }
+       /* Have we seen and written the (nearly) same waypoint ? */
+       else if (ce_find_wpt(wp) != NULL) return;
+       else {
+               ce_mark *mark = ce_alloc_mark(wp, NULL);
+               ENQUEUE_TAIL(&ce_mark_head, &mark->Q);
+               sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+               id = xml_buffer;
+       }
        write_xml_entity_begin2(ofd, "\t", "Mark",
-                                                       "created", ce_gen_creation_time(wp->creation_time),
-                                                       "id", ce_gen_uuid());
+               "created", ce_gen_creation_time(wp->creation_time),
+               "id", id);
        ce_waypt_pr(wp);
        write_xml_entity_end(ofd, "\t", "Mark");
 }
@@ -611,9 +652,21 @@ static void
 ce_marks_pr(void)
 {
        queue *elem, *tmp;
+
        QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
                ce_mark *mark = (ce_mark *) elem;
                ce_mark_pr(mark->wp);
+       }
+}
+
+/* Release all generated marks */
+static void
+ce_marks_flush_all(void)
+{
+       queue *elem, *tmp;
+
+       QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+               ce_mark *mark = (ce_mark *) elem;
                ce_free_mark(mark);
        }
 }
@@ -634,10 +687,14 @@ ce_write(void)
                                                   ce_gen_current_time());
        write_xml_entity(ofd, "\t", "Name", "Navigation Objects");
 
+       inRoute = 1;
        route_disp_all(ce_route_hdr, ce_route_tlr, ce_route_disp);
        ce_marks_pr();
+       inRoute = 0;
+       
        waypt_disp_all(ce_mark_pr);
-
+       ce_marks_flush_all();
+       
        write_xml_entity_end(ofd, "", "NavObjectCollection");
 }
 
index 9b7086aaabe933a7d8217130341d52277bee215c..3e9773f05c67a1d31448d0e3eae7859efb798e39 100644 (file)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GPSBabel 1.3.2.
+# Generated by GNU Autoconf 2.59 for GPSBabel 1.3.3.
 #
 # Report bugs to <BUG-REPORT-ADDRESS>.
 #
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='GPSBabel'
 PACKAGE_TARNAME='gpsbabel'
-PACKAGE_VERSION='1.3.2'
-PACKAGE_STRING='GPSBabel 1.3.2'
+PACKAGE_VERSION='1.3.3'
+PACKAGE_STRING='GPSBabel 1.3.3'
 PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS'
 
 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE_RELEASE GBMAJOR GBMINOR GBMICRO build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE  FILEINFO RC LIBUSBCONFIG USB_LIBS USB_CFLAGS OSJEEPS GBSER ZLIB EXPAT_LIB EFENCE_LIB GPSBABEL_DEBUG INSTALL_DEBUG DOCDIR LIBOBJS LTLIBOBJS'
@@ -738,7 +738,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GPSBabel 1.3.2 to adapt to many kinds of systems.
+\`configure' configures GPSBabel 1.3.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -800,7 +800,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GPSBabel 1.3.2:";;
+     short | recursive ) echo "Configuration of GPSBabel 1.3.3:";;
    esac
   cat <<\_ACEOF
 
@@ -929,7 +929,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-GPSBabel configure 1.3.2
+GPSBabel configure 1.3.3
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -943,7 +943,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GPSBabel $as_me 1.3.2, which was
+It was created by GPSBabel $as_me 1.3.3, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1281,7 +1281,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 # YYYYMMDD, please, if beta, i.e. "-beta20060413"
-PACKAGE_RELEASE=""
+# PACKAGE_RELEASE="-beta20061125"
 
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_RELEASE "$PACKAGE_RELEASE"
@@ -3173,6 +3173,11 @@ else
                        xpathdr=/sw/include/
                fi
                ;;
+       *-*-freebsd*)
+               if test -f /usr/local/include/expat.h ; then
+                       xpathdr=/usr/local/include
+               fi
+               ;;
        *)      ;;
        esac
 
@@ -3204,6 +3209,17 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 
+               fi
+               ;;
+       *-*-freebsd*)
+               if test -f /usr/local/lib/libexpat.a ; then
+                       EXPAT_LIB=/usr/local/lib/libexpat.a
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBEXPAT 1
+_ACEOF
+
+
                fi
                ;;
        *)
@@ -3448,7 +3464,7 @@ fi
 done
 
 
-                                                                                ac_config_files="$ac_config_files Makefile xmldoc/makedoc tools/mkcapabilities win32/gpsbabel.rc coldsync/Makefile jeeps/Makefile shapelib/Makefile zlib/empty"
+                                                                                          ac_config_files="$ac_config_files Makefile gbversion.h xmldoc/makedoc tools/mkcapabilities win32/gpsbabel.rc coldsync/Makefile jeeps/Makefile shapelib/Makefile zlib/empty"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -3812,7 +3828,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by GPSBabel $as_me 1.3.2, which was
+This file was extended by GPSBabel $as_me 1.3.3, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3872,7 +3888,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-GPSBabel config.status 1.3.2
+GPSBabel config.status 1.3.3
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -3976,6 +3992,7 @@ do
   case "$ac_config_target" in
   # Handling of arguments.
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "gbversion.h" ) CONFIG_FILES="$CONFIG_FILES gbversion.h" ;;
   "xmldoc/makedoc" ) CONFIG_FILES="$CONFIG_FILES xmldoc/makedoc" ;;
   "tools/mkcapabilities" ) CONFIG_FILES="$CONFIG_FILES tools/mkcapabilities" ;;
   "win32/gpsbabel.rc" ) CONFIG_FILES="$CONFIG_FILES win32/gpsbabel.rc" ;;
index 55b9aa081e8185f5e847f4f65ce2ebb07257ecba..39ce49bffc4935ebb5682ce096878c61ea7a1ab5 100644 (file)
@@ -3,10 +3,10 @@
 
 AC_PREREQ(2.59)
 
-AC_INIT(GPSBabel, 1.3.2, BUG-REPORT-ADDRESS)
+AC_INIT(GPSBabel, 1.3.3, BUG-REPORT-ADDRESS)
 
 # YYYYMMDD, please, if beta, i.e. "-beta20060413"
-PACKAGE_RELEASE=""
+# PACKAGE_RELEASE="-beta20061125"
 AC_DEFINE_UNQUOTED(PACKAGE_RELEASE, "$PACKAGE_RELEASE", [Define to the release name of this package.])
 AC_SUBST(PACKAGE_RELEASE)
 
@@ -194,6 +194,11 @@ AC_ARG_WITH(expathdr,
                        xpathdr=/sw/include/
                fi
                ;;
+       *-*-freebsd*)
+               if test -f /usr/local/include/expat.h ; then
+                       xpathdr=/usr/local/include
+               fi
+               ;;
        *)      ;;
        esac
 ]
@@ -217,6 +222,13 @@ AC_ARG_WITH(libexpat,
                          AC_SUBST(EXPAT_LIB)
                fi
                ;;
+       *-*-freebsd*)
+               if test -f /usr/local/lib/libexpat.a ; then
+                       EXPAT_LIB=/usr/local/lib/libexpat.a
+                         AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
+                         AC_SUBST(EXPAT_LIB)
+               fi
+               ;;
        *)
                        EXPAT_LIB=-lexpat
                ;;
@@ -274,5 +286,5 @@ AC_SUBST(DOCDIR)
 # AC_CHECK_FUNCS([atexit floor localtime_r memmove memset pow select sqrt strchr strcspn strdup strerror strncasecmp strrchr strspn strstr strtol strtoul])
 AC_CHECK_FUNCS([nanosleep sleep])
 
-AC_CONFIG_FILES([Makefile xmldoc/makedoc tools/mkcapabilities win32/gpsbabel.rc coldsync/Makefile jeeps/Makefile shapelib/Makefile zlib/empty])
+AC_CONFIG_FILES([Makefile gbversion.h xmldoc/makedoc tools/mkcapabilities win32/gpsbabel.rc coldsync/Makefile jeeps/Makefile shapelib/Makefile zlib/empty])
 AC_OUTPUT
old mode 100644 (file)
new mode 100755 (executable)
index b1b1c903b2b6b3ece9f6892ca1d926ba767cdf10..98725740e92e7ce2d8a57dc1b55de784fa0406cc 100644 (file)
--- a/copilot.c
+++ b/copilot.c
 #include "coldsync/pdb.h"
 #include "grtcirc.h"
 
-#define MYNAME         "CoPilot Waypoint"
-#define MYTYPE                 0x77617970      /* wayp */
-#define MYCREATOR      0x47584255              /* GXBU */
+#define MYNAME                 "CoPilot Waypoint"
+#define wayp_TYPE              0x77617970      /* wayp */
+#define wayu_TYPE              0x77617975      /* wayu */
+#define swpu_TYPE              0x73777075      /* swpu */
+#define GXPU_CREATOR   0x47584255              /* GXBU */
+#define AP_P_CREATOR   0x41502d50              /* AP-P */
 
 
-struct record {
+struct record0 {
+       pdb_double      latitude;       /* PDB double format, */
+       pdb_double      longitude;      /* similarly, neg = east */
+       pdb_double      magvar;         /* magnetic variation in degrees, neg = east */
+       udword          elevation;      /* feet */
+};
+
+struct record1 {
+       pdb_double      latitude;       /* PDB double format, */
+       pdb_double      longitude;      /* similarly, neg = east */
+       pdb_double      magvar;         /* magnetic variation in degrees, neg = east */
+       pdb_double      elevation;      /* feet */
+};
+
+struct record3 {
        pdb_double      latitude;       /* PDB double format, */
        pdb_double      longitude;      /* similarly, neg = east */
        pdb_double      magvar;         /* magnetic variation in degrees, neg = east */
        pdb_double      elevation;      /* feet */
-       char            flags;
+       char            flags;          /* flags */
+};
+
+struct record4 {
+       pdb_double      latitude;       /* PDB double format, */
+       pdb_double      longitude;      /* similarly, neg = east */
+       pdb_float       magvar;         /* magnetic variation in degrees, neg = east */
+       pdb_float       elevation;      /* feet */
 };
 
 static FILE *file_in;
@@ -69,10 +93,124 @@ wr_deinit(void)
        fclose(file_out);
 }
 
+static waypoint*
+read_version0(ubyte* data)
+{
+  char *vdata;
+  waypoint *wpt_tmp;
+  struct record0* rec = (struct record0*)data;
+
+  wpt_tmp = waypt_new();
+
+  wpt_tmp->longitude =
+       DEG(-pdb_read_double(&rec->longitude));
+  wpt_tmp->latitude =
+       DEG(pdb_read_double(&rec->latitude));
+  wpt_tmp->altitude = FEET_TO_METERS(be_read32(&rec->elevation));
+
+  vdata = (char *) data + sizeof(*rec);
+
+  wpt_tmp->shortname = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->description = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->notes = NULL;
+
+  return wpt_tmp;
+}
+
+static waypoint*
+read_version1(ubyte* data)
+{
+  char *vdata;
+  waypoint *wpt_tmp;
+  struct record1* rec = (struct record1*)data;
+
+  wpt_tmp = waypt_new();
+
+  wpt_tmp->longitude =
+       DEG(-pdb_read_double(&rec->longitude));
+  wpt_tmp->latitude =
+       DEG(pdb_read_double(&rec->latitude));
+  wpt_tmp->altitude =
+       FEET_TO_METERS(pdb_read_double(&rec->elevation));
+
+  vdata = (char *) data + sizeof(*rec);
+
+  wpt_tmp->shortname = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->description = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->notes = xstrdup(vdata);
+
+  return wpt_tmp;
+}
+
+static waypoint*
+read_version3(ubyte* data)
+{
+  char *vdata;
+  waypoint *wpt_tmp;
+  struct record3* rec = (struct record3*)data;
+
+  wpt_tmp = waypt_new();
+
+  wpt_tmp->longitude =
+       DEG(-pdb_read_double(&rec->longitude));
+  wpt_tmp->latitude =
+       DEG(pdb_read_double(&rec->latitude));
+  wpt_tmp->altitude =
+       FEET_TO_METERS(pdb_read_double(&rec->elevation));
+
+  vdata = (char *) data + sizeof(*rec);
+
+  wpt_tmp->shortname = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->description = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->notes = xstrdup(vdata);
+
+  return wpt_tmp;
+}
+
+static waypoint*
+read_version4(ubyte* data)
+{
+  char *vdata;
+  waypoint *wpt_tmp;
+  struct record4* rec = (struct record4*)data;
+
+  wpt_tmp = waypt_new();
+
+  wpt_tmp->longitude =
+       DEG(-pdb_read_double(&rec->longitude));
+  wpt_tmp->latitude =
+       DEG(pdb_read_double(&rec->latitude));
+  wpt_tmp->altitude =
+       FEET_TO_METERS(pdb_read_float(&rec->elevation));
+
+  vdata = (char *) data + sizeof(*rec);
+
+  wpt_tmp->shortname = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->description = xstrdup(vdata);
+  vdata = vdata + strlen(vdata) + 1;
+
+  wpt_tmp->notes = xstrdup(vdata);
+
+  return wpt_tmp;
+}
+
 static void
 data_read(void)
 {
-       struct record *rec;
        struct pdb *pdb;
        struct pdb_record *pdb_rec;
 
@@ -80,45 +218,47 @@ data_read(void)
                fatal(MYNAME ": pdb_Read failed\n");
        }
 
-       if ((pdb->creator != MYCREATOR) || (pdb->type != MYTYPE)) {
+       if ((pdb->creator != GXPU_CREATOR && pdb->creator != AP_P_CREATOR) ||
+               (pdb->type != wayp_TYPE && pdb->type != swpu_TYPE &&
+               pdb->type != wayu_TYPE)) {
                fatal(MYNAME ": Not a CoPilot file.\n");
        }
+       if (pdb->version > 4) {
+         fatal(MYNAME ": %d is not a known version.\n", pdb->version);
+       }
+
 
        for(pdb_rec = pdb->rec_index.rec; pdb_rec; pdb_rec=pdb_rec->next) {
                waypoint *wpt_tmp;
-               char *vdata;
-
-               wpt_tmp = waypt_new();
-
-               rec = (struct record *) pdb_rec->data;
-               wpt_tmp->longitude =
-                 DEG(-pdb_read_double(&rec->longitude));
-               wpt_tmp->latitude =
-                 DEG(pdb_read_double(&rec->latitude));
-               wpt_tmp->altitude =
-                 pdb_read_double(&rec->elevation) * .3048;
-
-               vdata = (char *) pdb_rec->data + sizeof(*rec);
-
-               wpt_tmp->shortname = xstrdup(vdata);
-               vdata = vdata + strlen(vdata) + 1;
-
-               wpt_tmp->description = xstrdup(vdata);
-               vdata = vdata + strlen(vdata) + 1;
-               
-               wpt_tmp->notes = xstrdup(vdata);
 
+               switch (pdb->version)
+               {
+               case 0:
+                 wpt_tmp = read_version0(pdb_rec->data);
+                 break;
+               case 1:
+               case 2:
+                 wpt_tmp = read_version1(pdb_rec->data);
+                 break;
+               case 3:
+                 wpt_tmp = read_version3(pdb_rec->data);
+                 break;
+               case 4:
+                 wpt_tmp = read_version4(pdb_rec->data);
+                 break;
+               default:
+                 fatal(MYNAME ": Unknown version %d.\n", pdb->version);
+               }
                waypt_add(wpt_tmp);
 
        } 
        free_pdb(pdb);
 }
 
-
 static void
 copilot_writewpt(const waypoint *wpt)
 {
-       struct record *rec;
+       struct record4 *rec;
        static int ct = 0;
        char *vdata;
 
@@ -126,9 +266,9 @@ copilot_writewpt(const waypoint *wpt)
 
        pdb_write_double(&rec->latitude, RAD(wpt->latitude));
        pdb_write_double(&rec->longitude, RAD(-wpt->longitude));
-       pdb_write_double(&rec->elevation,
-               wpt->altitude / .3048);
-       pdb_write_double(&rec->magvar, 0);
+       pdb_write_float(&rec->magvar, 0);
+       pdb_write_float(&rec->elevation,
+               METERS_TO_FEET(wpt->altitude));
 
        vdata = (char *)rec + sizeof(*rec);
        if ( wpt->shortname ) {
@@ -180,9 +320,9 @@ data_write(void)
        opdb->name[PDB_DBNAMELEN-1] = 0;
        opdb->attributes = PDB_ATTR_BACKUP;
        opdb->ctime = opdb->mtime = current_time() + 2082844800U;
-       opdb->type = MYTYPE;
-       opdb->creator = MYCREATOR; 
-       opdb->version = 0;
+       opdb->type = wayp_TYPE;
+       opdb->creator = GXPU_CREATOR; 
+       opdb->version = 4;
 
        waypt_disp_all(copilot_writewpt);
        
index e0817d44c6ffee6be0c4a56239c4331aa63b23ff..3fe89dd1ceb99e29fba8206a02e628842bb420f4 100644 (file)
@@ -25,6 +25,7 @@
 #include "csv_util.h"
 #include "grtcirc.h"
 #include "strptime.h"
+#include "jeeps/gpsmath.h"
 
 #define MYNAME "CSV_UTIL"
 
@@ -38,6 +39,7 @@
 #define EXCEL_TO_TIMET(a) ((a - 25569.0) * 86400.0)
 #define TIMET_TO_EXCEL(a) ((a / 86400.0) + 25569.0)
 
+#define GPS_DATUM_WGS84                118
 
 /****************************************************************************/
 /* obligatory global struct                                                 */
@@ -283,15 +285,14 @@ csv_lineparse(const char *stringstart, const char *delimited_by,
 #if CSVFMTS_ENABLED
 /*****************************************************************************/
 /* dec_to_intdeg() - convert decimal degrees to integer degreees             */
-/*    usage: i = dec_to_intdeg(31.1234, 1);                                  */
-/*           i = dec_to_intdeg(91.1234, 0);                                  */
+/*    usage: i = dec_to_intdeg(31.1234);                                     */
 /*****************************************************************************/
 static int
-dec_to_intdeg(const double d, const int islat
+dec_to_intdeg(const double d) 
 {
     int ideg = 0;
     
-    if (islat) {
+    if (d >= 0) {
         ideg = (2147483647) - (d * 8388608);
     } else {
         ideg = (2147483647) - (fabs(d) * 8388608) + 1; 
@@ -302,15 +303,14 @@ dec_to_intdeg(const double d, const int islat)
 
 /*****************************************************************************/
 /* intdeg_to_dec() - convert integer degrees to decimal degreees             */
-/*    usage: lat = dec_to_intdeg(ilat, 1);                                   */
-/*           lon = dec_to_intdeg(ilon, 0);                                   */
+/*    usage: lat = dec_to_intdeg(ilat);                                      */
 /*****************************************************************************/
 static double
-intdeg_to_dec(const int ideg, const int islat
+intdeg_to_dec(const int ideg) 
 {
     double d;
     
-    if (islat) {
+    if (ideg >= 0) {
         d = ((2147483647) - ideg) / (double)8388608;
     } else {
         d = ((-2147483647-1) + ideg) / (double)8388608;
@@ -585,6 +585,7 @@ xcsv_file_init(void)
     xcsv_file.type = ff_type_file;
 
     xcsv_file.mkshort_handle = mkshort_new_handle();
+    xcsv_file.gps_datum = GPS_DATUM_WGS84;
 }
 
 /*****************************************************************************/
@@ -688,7 +689,7 @@ sscanftime( const char *s, const char *format, const int gmt )
                        return mktime(&stm);            
        }
        
-       return -1;
+       return 0;
 }
 static
 time_t
@@ -834,7 +835,7 @@ xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp)
     } else
     if (strcmp(fmp->key, "LAT_INT32DEG") == 0) {
        /* latitude as a 32 bit integer offset */
-       wpt->latitude = intdeg_to_dec((int) atof(s), 1);
+       wpt->latitude = intdeg_to_dec((int) atof(s));
     } else
     if ( strcmp(fmp->key, "LAT_HUMAN_READABLE") == 0) {
        human_to_dec( s, &wpt->latitude, &wpt->longitude, 1 );
@@ -854,7 +855,7 @@ xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp)
     } else
     if (strcmp(fmp->key, "LON_INT32DEG") == 0) {
        /* longitude as a 32 bit integer offset  */
-       wpt->longitude = intdeg_to_dec((int) atof(s), 0);
+       wpt->longitude = intdeg_to_dec((int) atof(s));
     } else
     if ( strcmp(fmp->key, "LON_HUMAN_READABLE") == 0) {
        human_to_dec( s, &wpt->latitude, &wpt->longitude, 2 );
@@ -917,7 +918,7 @@ xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp)
        wpt->creation_time += addhms(s, fmp->printfc);
     } else
     if (strcmp(fmp->key, "ISO_TIME") == 0) {
-       wpt->creation_time = xml_parse_time(s);
+       wpt->creation_time = xml_parse_time(s, NULL);
     } else
        if (strcmp(fmp->key, "GEOCACHE_LAST_FOUND") == 0) {
        wpt->gc_data.last_found = yyyymmdd_to_time(s);
@@ -1004,10 +1005,24 @@ xcsv_data_read(void)
     queue *elem, *tmp;
     field_map_t *fmp;
     ogue_t *ogp;
+    route_head *rte = NULL;
+    route_head *trk = NULL;
     
+    if (xcsv_file.datatype == trkdata) {
+       trk = route_head_alloc();
+       track_add_head(trk);
+    } else
+    if (xcsv_file.datatype == rtedata) {
+       rte = route_head_alloc();
+       route_add_head(rte);
+    }
+
     while ((buff = gbfgetstr(xcsv_file.xcsvfp))) {
         linecount++;
-        buff = lrtrim(buff);
+       /* Whack trailing space; leading space may matter if our field sep
+        * is whitespace and we have leading whitespace. 
+        */
+        rtrim(buff);
 
         /* skip over x many lines on the top for the prologue... */
         if ((xcsv_file.prologue_lines) && ((linecount - 1) <
@@ -1057,7 +1072,21 @@ xcsv_data_read(void)
                 s = csv_lineparse(NULL, xcsv_file.field_delimiter, "",
                   linecount);
             }
-            waypt_add(wpt_tmp);
+            if ((xcsv_file.gps_datum > -1) && (xcsv_file.gps_datum != GPS_DATUM_WGS84)) {
+               double alt;
+               GPS_Math_Known_Datum_To_WGS84_M(wpt_tmp->latitude, wpt_tmp->longitude, 0.0,
+                   &wpt_tmp->latitude, &wpt_tmp->longitude, &alt, xcsv_file.gps_datum);
+           }
+           switch(xcsv_file.datatype) {
+               case 0:
+               case wptdata:
+                   waypt_add(wpt_tmp); break;
+               case trkdata:
+                   track_add_wpt(trk, wpt_tmp); break;
+               case rtedata: 
+                   route_add_wpt(rte, wpt_tmp); break;
+               default: ;
+           }
         }
 
     }
@@ -1086,13 +1115,14 @@ xcsv_waypt_pr(const waypoint *wpt)
     int i;
     field_map_t *fmp;
     queue *elem, *tmp;
+    double latitude, longitude;
     
     if ( oldlon < 900 ) {
        pathdist += radtomiles(gcdist(RAD(oldlat),RAD(oldlon),
                        RAD(wpt->latitude),RAD(wpt->longitude)));
     }
-    oldlon = wpt->longitude;
-    oldlat = wpt->latitude;
+    longitude = oldlon = wpt->longitude;
+    latitude = oldlat = wpt->latitude;
 
     if (xcsv_file.field_delimiter && strcmp(xcsv_file.field_delimiter, "\\w") == 0)
         write_delimiter = " ";
@@ -1132,12 +1162,17 @@ xcsv_waypt_pr(const waypoint *wpt)
            description = xstrdup(odesc);
            xfree(odesc);
     }
+    if ((xcsv_file.gps_datum > -1) && (xcsv_file.gps_datum != GPS_DATUM_WGS84)) {
+       double alt;
+       GPS_Math_WGS84_To_Known_Datum_M(latitude, longitude, 0.0,
+           &latitude, &longitude, &alt, xcsv_file.gps_datum);
+    }
 
     i = 0;
     QUEUE_FOR_EACH(xcsv_file.ofield, elem, tmp) {
        char *obuff;
-       double lat = wpt->latitude;
-       double lon = wpt->longitude;
+       double lat = latitude;
+       double lon = longitude;
        /*
         * A klunky concept.   This should evaluate to true for any
         * field if we think we don't have realistic value for it.
@@ -1245,7 +1280,7 @@ xcsv_waypt_pr(const waypoint *wpt)
         if (strcmp(fmp->key, "LAT_INT32DEG") == 0) {
             /* latitude as an integer offset from 0 degrees */
             writebuff(buff, fmp->printfc,
-              dec_to_intdeg(lat, 1));
+              dec_to_intdeg(lat));
         } else
        if (strcmp(fmp->key, "LAT_HUMAN_READABLE") == 0) {
            dec_to_human( buff, fmp->printfc, "SN", lat );
@@ -1274,7 +1309,7 @@ xcsv_waypt_pr(const waypoint *wpt)
         if (strcmp(fmp->key, "LON_INT32DEG") == 0) {
             /* longitudee as an integer offset from 0 degrees */
             writebuff(buff, fmp->printfc,
-              dec_to_intdeg(lon, 0));
+              dec_to_intdeg(lon));
         } else
        if (strcmp(fmp->key, "LON_HUMAN_READABLE") == 0) {
            dec_to_human( buff, fmp->printfc, "WE", lon );
@@ -1513,9 +1548,12 @@ xcsv_data_write(void)
        gbfprintf(xcsv_file.xcsvfp, "%s", xcsv_file.record_delimiter);
     }
 
-    waypt_disp_all(xcsv_waypt_pr);
-    route_disp_all(xcsv_resetpathlen,xcsv_noop,xcsv_waypt_pr);
-    track_disp_all(xcsv_resetpathlen,xcsv_noop,xcsv_waypt_pr);
+    if ((xcsv_file.datatype == 0) || (xcsv_file.datatype == wptdata))
+       waypt_disp_all(xcsv_waypt_pr);
+    if ((xcsv_file.datatype == 0) || (xcsv_file.datatype == rtedata))
+       route_disp_all(xcsv_resetpathlen,xcsv_noop,xcsv_waypt_pr);
+    if ((xcsv_file.datatype == 0) || (xcsv_file.datatype == trkdata))
+       track_disp_all(xcsv_resetpathlen,xcsv_noop,xcsv_waypt_pr);
 
     /* output epilogue lines, if any. */
     QUEUE_FOR_EACH(&xcsv_file.epilogue, elem, tmp) {
index 8da2d3e2a89896a91885aea27d40d37a45d6a2df..e8659a82b13f7f2fece8c127a4c561519bb8ff4b 100644 (file)
@@ -131,7 +131,11 @@ typedef struct {
     
     short_handle mkshort_handle;/* handle for mkshort() */
     ff_type type;              /* format type for GUI wrappers. */
-    
+
+    int gps_datum;             /* result of GPS_Lookup_Datum_Index */
+    gpsdata_type datatype;     /* can be wptdata, rtedata or trkdata */
+                               /* ... or ZERO to keep the old behaviour */
+
 } xcsv_file_t;
 
 
diff --git a/defs.h b/defs.h
index 3c2d5ad9337d0b41ed224f28a2b0cfa68dd0d0fa..0c8e081a5e51c3118b4abf10d37d19c7a18192d8 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -151,8 +151,8 @@ typedef struct {
        gpsdata_type objective;
        unsigned int    masked_objective;
        int verbose_status;     /* set by GUI wrappers for status */
-       int no_smart_icons;     
-       int no_smart_names;
+       int smart_icons;        
+       int smart_names;
        cet_cs_vec_t *charset;
        char *charset_name;
        inifile_t *inifile;
@@ -163,6 +163,11 @@ extern const char gpsbabel_version[];
 extern time_t gpsbabel_now;    /* gpsbabel startup-time; initialized in main.c with time() */
 extern time_t gpsbabel_time;   /* gpsbabel startup-time; initialized in main.c with current_time(), ! ZERO within testo ! */
 
+#define MILLI_TO_MICRO(t) (t * 1000)  /* Milliseconds to Microseconds */
+#define MICRO_TO_MILLI(t) (t / 1000)  /* Microseconds to Milliseconds*/
+#define CENTI_TO_MICRO(t) (t * 10000) /* Centiseconds to Microseconds */
+#define MICRO_TO_CENTI(t) (t / 10000) /* Centiseconds to Microseconds */
+
 /* Short or Long XML Times */
 #define XML_SHORT_TIME 1
 #define XML_LONG_TIME 2
@@ -326,7 +331,7 @@ typedef struct {
        wp_flags wpt_flags;
        const char *icon_descr;
        time_t creation_time;   /* standardized in UTC/GMT */
-       int centiseconds;       /* Optional hundredths of a second. */
+       int microseconds;       /* Optional millionths of a second. */
        
        /*
         * route priority is for use by the simplify filter.  If we have
@@ -726,6 +731,8 @@ char * convert_human_date_format(const char *human_datef);  /* "MM,YYYY,DD" -> "%
 char * convert_human_time_format(const char *human_timef);     /* "HH+mm+ss"   -> "%H+%M+%S" */
 char * pretty_deg_format(double lat, double lon, char fmt, int html);   /* decimal ->  dd.dddd or dd mm.mmm or dd mm ss */
 
+char * get_filename(const char *fname);                                /* extract the filename portion */
+
 /* 
  * Character encoding transformations.
  */
@@ -743,7 +750,7 @@ char * pretty_deg_format(double lat, double lon, char fmt, int html);   /* decim
 #define str_iso8859_1_to_utf8(str) cet_str_iso8859_1_to_utf8((str))
 
 /* this lives in gpx.c */
-time_t xml_parse_time( const char *cdatastr );
+time_t xml_parse_time( const char *cdatastr, int * microsecs );
        
 xml_tag *xml_findfirst( xml_tag *root, char *tagname );
 xml_tag *xml_findnext( xml_tag *root, xml_tag *cur, char *tagname );
@@ -773,6 +780,10 @@ typedef struct {
        unsigned char data[8];
 } pdb_double;
 
+typedef struct {
+       unsigned char data[4];
+} pdb_float;
+
 /*
  * Protypes for Endianness helpers.
  */
@@ -786,13 +797,26 @@ void be_write16(void *pp, const unsigned i);
 void be_write32(void *pp, const unsigned i);
 void le_write16(void *pp, const unsigned i);
 void le_write32(void *pp, const unsigned i);
-double pdb_read_double(void *p);
-void pdb_write_double(void *pp, double d);
 
-double le_read_double(void *p);
+double endian_read_double(void* ptr, int read_le);
+float  endian_read_float(void* ptr, int read_le);
+void   endian_write_double(void* ptr, double d, int write_le);
+void   endian_write_float(void* ptr, float f, int write_le);
+
+float  be_read_float(void *p);
 double be_read_double(void *p);
-void le_write_double(void *p, double d);
-void be_write_double(void *p, double d);
+void   be_write_float(void *pp, float d);
+void   be_write_double(void *pp, double d);
+
+float  le_read_float(void *p);
+double le_read_double(void *p);
+void   le_write_float(void *ptr, float f);
+void   le_write_double(void *p, double d);
+
+#define pdb_write_float be_write_float
+#define pdb_read_float be_read_float
+#define pdb_write_double be_write_double
+#define pdb_read_double be_read_double
 
 /*
  * Prototypes for generic conversion routines (util.c).
index 1b69c8c86311ca842e14e881e45cb8c4f43b6cbe..d8f1942c58d7c885c57c1970f6097ba7e7d83fd2 100644 (file)
--- a/discard.c
+++ b/discard.c
@@ -28,6 +28,8 @@ static char *vdopopt = NULL;
 static char *andopt = NULL;
 static double hdopf;
 static double vdopf;
+static gpsdata_type what;
+static route_head *head;
 
 static
 arglist_t fix_args[] = {
@@ -62,35 +64,43 @@ fix_process_wpt(const waypoint *wpt)
                del = delh || delv;
 
        if (del) {
-               waypt_del(waypointp);
+               switch(what) {
+                       case wptdata:
+                               waypt_del(waypointp);
+                               break;
+                       case trkdata:
+                               track_del_wpt(head, waypointp);
+                               break;
+                       case rtedata:
+                               route_del_wpt(head, waypointp);
+                               break;
+                       default:
+                               return;
+               }
                waypt_free(waypointp);
        }
 }
 
 static void
-fix_process_track(const route_head *trk)
+fix_process_head(const route_head *trk)
 {
-       waypoint * waypointp;
-       queue *elem, *tmp;
-       
-       QUEUE_FOR_EACH((queue *)&trk->waypoint_list, elem, tmp) {
-               waypointp = (waypoint *)elem;
-
-               fix_process_wpt(waypointp);
-       }
+       head = (route_head *)trk;
 }
 
 static void
 fix_process(void)
 {
        // Filter waypoints.
+       what = wptdata;
        waypt_disp_all(fix_process_wpt);
 
        // Filter tracks
-       track_disp_all(fix_process_track, NULL, NULL);
+       what = trkdata;
+       track_disp_all(fix_process_head, NULL, fix_process_wpt);
        
        // And routes
-       route_disp_all(fix_process_track, NULL, NULL);
+       what = rtedata;
+       route_disp_all(fix_process_head, NULL, fix_process_wpt);
        
 }
 
index 05d70b055f0b61009d126394bae0bcf22e268389..785ab0050811b8568937a8515f819d099bb68907 100644 (file)
--- a/dmtlog.c
+++ b/dmtlog.c
@@ -128,6 +128,15 @@ finalize_pt(waypoint *wpt)
                wpt->latitude = xmlLatitude;
                wpt->longitude = xmlLongitude;
        }
+       /* NOTE:
+        * Alan White reports this program actually subtracts a number
+        * of meters ranging between 46 and 50 meters.  It appears to be
+        * constant for each location, but different without an obvious
+        * correlation to ground altitude.  We considered offsetting this
+        * in GPSBabel, but concluded it wasn't worth the bother. 
+        * If we get complaints, probably all of our alt reading and writing
+        * should offset an average of 46m or so.
+        */
        wpt->altitude = xmlAltitude;
        convert_datum(wpt, xmldatum);
 }
@@ -649,7 +658,7 @@ track_wpt_cb(const waypoint *wpt)
        
        gbfputdbl(wpt->latitude, fout);
        gbfputdbl(wpt->longitude, fout);
-       gbfputdbl(wpt->altitude, fout);
+       gbfputdbl(wpt->altitude != unknown_alt ? wpt->altitude : 0, fout);
 }
 
 static void
@@ -659,7 +668,7 @@ wpt_cb(const waypoint *wpt)
        
        gbfputdbl(wpt->latitude, fout);
        gbfputdbl(wpt->longitude, fout);
-       gbfputdbl(wpt->altitude, fout);
+       gbfputdbl(wpt->altitude != unknown_alt ? wpt->altitude : 0, fout);
        
        names = 1;
        if (wpt->description && *wpt->description) names = 2;
@@ -680,7 +689,7 @@ dmtlog_write(void)
        gbfputint32(4, fout);
        gbfputint32(1, fout);
        gbfputint32(0x100001, fout);
-       gbfputuint32((const gbuint32)gpsbabel_now, fout);
+       gbfputuint32((const gbuint32)gpsbabel_time, fout);
        
        header_written = 0;
        this_index = 0;
index b203ada69c2a68d93be140e66498ec79f2439cf8..2bc95850bd7a320d7e53f4a22447030f0fd5d154 100644 (file)
--- a/easygps.c
+++ b/easygps.c
@@ -22,8 +22,8 @@
 #include "defs.h"
 #include <ctype.h>
 
-static FILE *file_in;
-static FILE *file_out;
+static gbfile *file_in;
+static gbfile *file_out;
 static short_handle mkshort_handle;
 /* static char *deficon = NULL; */
 
@@ -39,139 +39,96 @@ arglist_t easygps_args[] = {
 static void
 rd_init(const char *fname)
 {
+       int sz;
        char ibuf[100] = {'0'} ;
        const char *ezsig = "TerraByte Location File";
 
-       file_in = xfopen(fname, "rb", MYNAME);
+       file_in = gbfopen_le(fname, "rb", MYNAME);
 
-       fread(ibuf, 52, 1, file_in);
+       sz = gbfread(ibuf, 1, 52, file_in);
        
-       if (strncmp(ibuf, ezsig, sizeof(ezsig)-1) ||
-                               ibuf[51] != 'W') {
-               fatal(MYNAME ": %s is not an EasyGPS file\n", fname);
+       if ((sz < 52) || 
+           strncmp(ibuf, ezsig, sizeof(ezsig)-1) ||
+           (ibuf[51] != 'W')) {
+               fatal(MYNAME ": %s is not an EasyGPS file.\n", fname);
        }
 }
 
 static void
 rd_deinit(void)
 {
-       fclose(file_in);
+       gbfclose(file_in);
 }
 
 static void
 wr_init(const char *fname)
 {
-       file_out = xfopen(fname, "wb", MYNAME);
+       file_out = gbfopen_le(fname, "wb", MYNAME);
        mkshort_handle = mkshort_new_handle();
 }
 
 static void
 wr_deinit(void)
 {
-       fclose(file_out);
+       gbfclose(file_out);
        mkshort_del_handle(&mkshort_handle);
 }
 
-/*
- *  Read a pascal string from file_in and return a copy in allocated
- *  storage.
- */
-static void *
-pas_read(void)
-{
-       char *d;
-       int ilen;
-
-       ilen = fgetc(file_in);
-       d = (char *) xmalloc(ilen + 1);
-       fread(d, ilen, 1, file_in);
-       d[ilen] = 0;
-       return d;
-}
-
 static void
 data_read(void)
 {
        char p;
        char ibuf[10];
-       char bbuf[4096];
-       char *bbufp;
        do {
                unsigned char tag;
                waypoint *wpt_tmp;
 
                wpt_tmp = waypt_new();
                        
-               for (tag = fgetc(file_in); tag != 0xff; tag = fgetc(file_in)) {
+               for (tag = gbfgetc(file_in); tag != 0xff; tag = gbfgetc(file_in)) {
                switch (tag) {
                        case 1:
-                               wpt_tmp->shortname = (char *) pas_read();
+                               wpt_tmp->shortname = gbfgetpstr(file_in);
                                break;
                        case 2:
                        case 3:
-                               wpt_tmp->description = (char *) pas_read();
+                               wpt_tmp->description = gbfgetpstr(file_in);;
                                break;
                        case 5:
-                               wpt_tmp->notes = (char *) pas_read();
+                               wpt_tmp->notes = gbfgetpstr(file_in);;
                                break;
                        case 6:
-                               wpt_tmp->url_link_text = (char *) pas_read();
+                               wpt_tmp->url_link_text = gbfgetpstr(file_in);;
                                break;
                        case 7:
-                               wpt_tmp->icon_descr = (char *) pas_read();
+                               wpt_tmp->icon_descr = gbfgetpstr(file_in);;
                                wpt_tmp->wpt_flags.icon_descr_is_dynamic = 1;
                                break;
                        case 8:  /* NULL Terminated (vs. pascal) descr */
-                               bbufp = bbuf;
-                               for(;;) {
-                                       p = fgetc(file_in);
-                                       *bbufp++ = p;
-                                       if ( 0 == p ) {
-                                               break;
-                                       }
-                               }
-                               wpt_tmp->notes = xstrdup(bbuf);
+                               wpt_tmp->notes = gbfgetcstr(file_in);
                                break;
                        case 9: /* NULL Terminated (vs. pascal) link */
-                               bbufp = bbuf;
-                               for(;;) {
-                                       p = fgetc(file_in);
-                                       *bbufp++ = p;
-                                       if ( 0 == p ) {
-                                               break;
-                                       }
-                               }
-                               wpt_tmp->url = xstrdup(bbuf);
+                               wpt_tmp->url = gbfgetcstr(file_in);
                                break;
                        case 0x10:
-                               bbufp = bbuf;
-                               for(;;) {
-                                       p = fgetc(file_in);
-                                       *bbufp++ = p;
-                                       if ( 0 == p ) {
-                                               break;
-                                       }
-                               }
-                               wpt_tmp->url_link_text = xstrdup(bbuf);
+                               wpt_tmp->url_link_text = gbfgetcstr(file_in);
                                break;
                        case 0x63:
-                               fread(ibuf, 8, 1, file_in);
-                               wpt_tmp->latitude = le_read_double(ibuf);
+                               wpt_tmp->latitude = gbfgetdbl(file_in);
                                break;
                        case 0x64:
-                               fread(ibuf, 8, 1, file_in);
-                               wpt_tmp->longitude = le_read_double(ibuf);
+                               wpt_tmp->longitude = gbfgetdbl(file_in);
                                break;
                        case 0x65:
                        case 0x66:
-                               fread(ibuf, 8, 1, file_in);
+                               gbfread(ibuf, 8, 1, file_in);
                                break;
                        case 0x84:
                        case 0x85:
-                               fread(ibuf, 4, 1, file_in);
+                               gbfread(ibuf, 4, 1, file_in);
                                break;
                        case 0x86: /* May be proximity.  I think it's time. */
-                               fread(ibuf, 4, 1, file_in);
+                               gbfread(ibuf, 4, 1, file_in);
                                break;
                        default:
                                printf("Unknown tag %x\n", tag);
@@ -179,63 +136,47 @@ data_read(void)
                }
                }
                waypt_add(wpt_tmp);
-               p = fgetc(file_in);
-       } while (!feof(file_in) && (p == 'W'));
+               p = gbfgetc(file_in);
+       } while (!gbfeof(file_in) && (p == 'W'));
 }
 
 
-
-       /*
-        * Write a Pascal string to the output stream.
-        */
-static void
-write_pstring(const char *p)
-{
-       int len = strlen(p);
-       if (len > 255) {
-                       fatal(MYNAME ": String too long at %d bytes\n", len);
-       }
-       fputc(len, file_out);
-       fwrite(p, len, 1, file_out);
-}
-
 static void
 ez_disp(const waypoint *wpt)
 {
-       char tbuf[8];
-       fprintf(file_out, "W");
+       gbfputc('W', file_out);
+
        if (wpt->shortname) {
-               fputc(1, file_out);
-               write_pstring(wpt->shortname);
+               gbfputc(1, file_out);
+               gbfputpstr(wpt->shortname, file_out);
        } 
        if (wpt->description) {
-               fputc(3, file_out);
-               write_pstring(wpt->description);
+               gbfputc(3, file_out);
+               gbfputpstr(wpt->description, file_out);
        }
        if (wpt->icon_descr) {
-               fputc(7, file_out);
-               write_pstring(wpt->icon_descr);
+               gbfputc(7, file_out);
+               gbfputpstr(wpt->icon_descr, file_out);
        }
-       fputc(0x63, file_out);
-       le_write_double(tbuf, wpt->latitude);
-       fwrite(tbuf, 8, 1, file_out);
-       fputc(0x64, file_out);
-       le_write_double(tbuf, wpt->longitude);
-       fwrite(tbuf, 8, 1, file_out);
+       gbfputc(0x63, file_out);
+       gbfputdbl(wpt->latitude, file_out);
+
+       gbfputc(0x64, file_out);
+       gbfputdbl(wpt->longitude, file_out);
+
        if (wpt->notes) {
-               fputc(5, file_out);
-               write_pstring(wpt->notes);
+               gbfputc(5, file_out);
+               gbfputpstr(wpt->notes, file_out);
        }
        if (wpt->url_link_text) {
-               fputc(6, file_out);
-               write_pstring(wpt->url_link_text);
+               gbfputc(6, file_out);
+               gbfputpstr(wpt->url_link_text, file_out);
        }
        if (1 && wpt->url) {
-               fputc(9, file_out);
-               fputs(wpt->url, file_out);
-               fputc(0, file_out);
+               gbfputc(9, file_out);
+               gbfputcstr(wpt->url, file_out);
        }
-       fputc(0xff, file_out);
+       gbfputc(0xff, file_out);
 }
 
 static void
@@ -243,19 +184,19 @@ data_write(void)
 {
        setshort_length(mkshort_handle, 6);
 
-       fprintf(file_out, 
+       gbfprintf(file_out, 
                "TerraByte Location File Copyright 2001 TopoGrafix\n");
        /*
         * I don't know what this is.
         */
-       fprintf(file_out, "%c", 0xb);
+       gbfprintf(file_out, "%c", 0xb);
 
        waypt_disp_all(ez_disp);
 
        /*
         * Files seem to always end in a zero.
         */
-       fputc(0x00, file_out);
+       gbfputc(0x00, file_out);
 }
 
 
index 8dee6d560a8fbe20e1919705f1cf2aa092086336..75e4a5e1c36cfe89e033a5ad13e4a2a7a901a7ff 100644 (file)
@@ -115,7 +115,7 @@ fl_vecs_t filter_vec_list[] = {
        {
                &transform_vecs,
                "transform",
-               "Transformate waypoints into a route, tracks into routes, ..."
+               "Transform waypoints into a route, tracks into routes, ..."
        },
 #endif
         {
index c696357b07823fc54fa4fb8b91e67ec4fc2163e9..51517774b6e79ca0adf8608d9ce89b9edb8273cc 100644 (file)
--- a/garmin.c
+++ b/garmin.c
@@ -42,8 +42,10 @@ static char *snwhiteopt = NULL;
 static char *deficon = NULL;
 static char *category = NULL;
 
+#define MILITANT_VALID_WAYPT_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
 /* Technically, even this is a little loose as spaces arent allowed */
-static char valid_waypt_chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789";
+static const char *valid_waypt_chars = MILITANT_VALID_WAYPT_CHARS " ";
 
 static
 arglist_t garmin_args[] = {
@@ -133,6 +135,14 @@ rw_init(const char *fname)
                                case 130:       /* Garmin Etrex (yellow) */
                                        receiver_short_length = 6;
                                        break;
+                               case 295:
+                                       /* eTrex (yellow, firmware v. 3.30) */
+                                       receiver_short_length = 6;
+                                       valid_waypt_chars =
+                                         MILITANT_VALID_WAYPT_CHARS " +-";
+                                       setshort_badchars(mkshort_handle, "\"$.,'!");
+                                       break;
+
                                case 155:       /* Garmin V */
                                case 404:       /* SP2720 */
                                        receiver_short_length = 20;
@@ -284,6 +294,7 @@ waypt_read(void)
                waypt_add(wpt_tmp);
                GPS_Way_Del(&way[i]);
        }
+       xfree(way);
 }
 
 static
@@ -435,7 +446,7 @@ pvt2wpt(GPS_PPvt_Data pvt, waypoint *wpt)
                - pvt->leap_scnds;
        wptimes = floor(wptime);
        wpt->creation_time = wptimes;
-       wpt->centiseconds = 100.0 * (wptime - wptimes);
+       wpt->microseconds = 1000000.0 * (wptime - wptimes);
        
        /*
         * The Garmin spec fifteen different models that use a different 
@@ -476,6 +487,8 @@ pvt_read(posn_status *posn_status)
 
        if (GPS_Command_Pvt_Get(&pvt_fd, &pvt)) {
                pvt2wpt(pvt, wpt);
+               GPS_Pvt_Del(&pvt);
+
                wpt->shortname = xstrdup("Position");
 
                if (gps_errno && posn_status) {
@@ -493,6 +506,7 @@ pvt_read(posn_status *posn_status)
                fatal(MYNAME ": Fatal error reading position.\n");
        }
 
+       waypt_free(wpt);
        GPS_Pvt_Del(&pvt);
 
        return NULL;
@@ -558,16 +572,18 @@ waypt_write_cb(GPS_PWay *way)
 }
 
 /* 
- * If we're not using smart icons, try to put the cache info in the
+ * If we're using smart names, try to put the cache info in the
  * description.
  */
 const char *
 get_gc_info(waypoint *wpt)
 {
-       if (global_opts.no_smart_icons) {
+       if (global_opts.smart_names) {
                if (wpt->gc_data.type == gt_virtual) return  "V ";
                if (wpt->gc_data.type == gt_unknown) return  "? ";
                if (wpt->gc_data.type == gt_multi) return  "Mlt ";
+               if (wpt->gc_data.type == gt_earth) return  "EC ";
+               if (wpt->gc_data.type == gt_event) return  "Ev ";
                if (wpt->gc_data.container == gc_micro) return  "M ";
                if (wpt->gc_data.container == gc_small) return  "S ";
        }
@@ -622,7 +638,7 @@ waypoint_write(void)
                }
                way[i]->ident[sizeof(way[i]->ident)-1] = 0;
 
-               if (!global_opts.no_smart_icons && 
+               if (global_opts.smart_names && 
                     wpt->gc_data.diff && wpt->gc_data.terr) {
                        snprintf(obuf, sizeof(obuf), "%s%d/%d %s", 
                                        get_gc_info(wpt),
index b22621ea3151820f21d1266fe42a7b21a94c395a..47afd54c8ddfb1ff47e7b755b54ed8b9efefbef2 100644 (file)
@@ -96,7 +96,7 @@ void garmin_fs_copy(garmin_fs_t **dest, garmin_fs_t *src)
 /* GPX - out */
 
 void 
-garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt)
+garmin_fs_xml_fprint(gbfile *ofd, const waypoint *waypt)
 {
        garmin_fs_t *gmsd = GMSD_FIND(waypt);
        if (gmsd == NULL) return;
@@ -109,18 +109,18 @@ garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt)
        {
                int space = 1;
                
-               fprintf(ofd, "%*s<extensions>\n", space++ * 2, "");
-               fprintf(ofd, "%*s<gpxx:WaypointExtension xmlns:gpxx=\"" \
+               gbfprintf(ofd, "%*s<extensions>\n", space++ * 2, "");
+               gbfprintf(ofd, "%*s<gpxx:WaypointExtension xmlns:gpxx=\"" \
                        "http://www.garmin.com/xmlschemas/GpxExtensions/v2\" " \
                        "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " \
                        "xsi:schemaLocation=\"http://www.garmin.com/xmlschemas/GpxExtensions/v2 " \
                        "http://www.garmin.com/xmlschemas/GpxExtensions/v2/GpxExtensionsv2.xsd\">\n", space++ * 2, "");
                if (gmsd->flags.proximity)
-                       fprintf(ofd, "%*s<gpxx:Proximity>%.6f</gpxx:Proximity>\n", space * 2, "", gmsd->proximity);
+                       gbfprintf(ofd, "%*s<gpxx:Proximity>%.6f</gpxx:Proximity>\n", space * 2, "", gmsd->proximity);
                if (gmsd->flags.temperature)
-                       fprintf(ofd, "%*s<gpxx:Temperature>%.6f</gpxx:Temperature>\n", space * 2, "", gmsd->temperature);
+                       gbfprintf(ofd, "%*s<gpxx:Temperature>%.6f</gpxx:Temperature>\n", space * 2, "", gmsd->temperature);
                if (gmsd->flags.depth)
-                       fprintf(ofd, "%*s<gpxx:Depth>%.6f</gpxx:Depth>\n", space * 2, "", gmsd->depth);
+                       gbfprintf(ofd, "%*s<gpxx:Depth>%.6f</gpxx:Depth>\n", space * 2, "", gmsd->depth);
                if (gmsd->flags.display)
                {
                        char *cx;
@@ -136,23 +136,23 @@ garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt)
                                        cx = "SymbolAndName"; 
                                        break;
                        }
-                       fprintf(ofd, "%*s<gpxx:DisplayMode>%s</gpxx:DisplayMode>\n", space * 2, "", cx);
+                       gbfprintf(ofd, "%*s<gpxx:DisplayMode>%s</gpxx:DisplayMode>\n", space * 2, "", cx);
                }
                if (gmsd->flags.category && gmsd->category)
                {
                        int i;
                        gbuint16 cx = gmsd->category;
-                       fprintf(ofd, "%*s<gpxx:Categories>\n", space++ * 2, "");
+                       gbfprintf(ofd, "%*s<gpxx:Categories>\n", space++ * 2, "");
                        for (i = 0; i < 16; i++) 
                        {
                                if (cx & 1)
-                                       fprintf(ofd, "%*s<gpxx:Category>Category %d</gpxx:Category>\n", space*2, "", i+1);
+                                       gbfprintf(ofd, "%*s<gpxx:Category>Category %d</gpxx:Category>\n", space*2, "", i+1);
                                cx = cx >> 1;
                        }
-                       fprintf(ofd, "%*s</gpxx:Categories>\n", --space * 2, "");
+                       gbfprintf(ofd, "%*s</gpxx:Categories>\n", --space * 2, "");
                }
-               fprintf(ofd, "%*s</gpxx:WaypointExtension>\n", --space * 2, "");
-               fprintf(ofd, "%*s</extensions>\n", --space * 2, "");
+               gbfprintf(ofd, "%*s</gpxx:WaypointExtension>\n", --space * 2, "");
+               gbfprintf(ofd, "%*s</extensions>\n", --space * 2, "");
        }
        
 }
index 1235251233d3db0250b39c80632c31137ac3b34c..f12a11a8ec5d71c4ea7aee244ee343ac03f0d823 100644 (file)
@@ -106,7 +106,7 @@ char *garmin_fs_xstrdup(const char *src, size_t size);
 
 /* for GPX */
 void garmin_fs_xml_convert(const int base_tag, int tag, const char *cdatastr, waypoint *waypt);
-void garmin_fs_xml_fprint(FILE *ofd, const waypoint *waypt);
+void garmin_fs_xml_fprint(gbfile *ofd, const waypoint *waypt);
 
 /* common garmin_fs utilities */
 
index 5e0811f9c1bd80a0feacab8a7fe69bdc6f0828a8..a82369967a76e6632b204dc3cbe613f2e5dbf213 100644 (file)
@@ -3,7 +3,7 @@
     Based on information provided by Ian Cowley, Sigurd Humerfelt,
        and Garmin MapSource
 
-    Copyright (C) 2003 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2003-2007 Robert Lipe, robertlipe@usa.net
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -94,8 +94,8 @@ icon_mapping_t garmin_icon_table[] = {
        {    99,  8239, "Ghost Town" },
        {   113, 16393, "Glider Area" },
        {    68,  8197, "Golf Course" },
-       {     2,     2, "Green Diamond" },
-       {    15,    15, "Green Square" },
+       {     2,     2, "Diamond, Green" },
+       {    15,    15, "Square, Green" },
        {   108, 16388, "Heliport" },
        {     9,     9, "Horn" },
        {    57,   171, "Hunting Area" },
@@ -106,7 +106,7 @@ icon_mapping_t garmin_icon_table[] = {
        {    59,   173, "Lodging" },
        {    59,   173, "Hotel" },
        {    20,    21, "Man Overboard" },
-       {     0,     0, "Marina" },
+       {     0,     0, "Anchor" },
        {    43,   156, "Medical Facility" },
        {    66,  8195, "Mile Marker" },
        {   101,  8241, "Military" },
@@ -137,8 +137,8 @@ icon_mapping_t garmin_icon_table[] = {
        {    83,  8214, "Post Office" },
        {   109, 16389, "Private Field" },
        {    36,    37, "Radio Beacon" },
-       {     3,     3, "Red Diamond" },
-       {    16,    16, "Red Square" },
+       {     3,     3, "Diamond, Red" },
+       {    16,    16, "Square, Red" },
        {    10,    10, "Residence" },
        {    10,    10, "House" },
        {    11,    11, "Restaurant" },
@@ -169,8 +169,8 @@ icon_mapping_t garmin_icon_table[] = {
        {   114, 16394, "Ultralight Area" },
        {   139,  8282, "Water Hydrant" },      /* new in MapSource V5 */
        {    18,    18, "Waypoint" },
-       {    17,    17, "White Buoy" },
-       {    35,    36, "White Dot" },
+       {    17,    17, "Buoy, White" },
+       {    35,    36, "Dot, White" },
        {    88,  8219, "Zoo" },
 
        /* Custom icons.   The spec reserves 7680-8191 for the custom
@@ -200,9 +200,9 @@ icon_mapping_t garmin_icon_table[] = {
        {   143,  8289, "Pin, Red" },
        {   144,  8287, "Pin, Blue" },
        {   145,  8288, "Pin, Green" },
-       {   146,  8292, "Diamond, Red" },
-       {   147,  8290, "Diamond, Blue" },
-       {   148,  8291, "Diamond, Green" },
+       {   146,  8292, "Block, Red" },
+       {   147,  8290, "Block, Blue" },
+       {   148,  8291, "Block, Green" },
        {   149,  8293, "Bike Trail" },
        {   150,   181, "Fishing Hot Spot Facility" }, 
        {   151,  8249, "Police Station"}, 
@@ -216,31 +216,34 @@ icon_mapping_t garmin_icon_table[] = {
        {   159,   188, "Weed Bed" }, 
        {   160,   189, "Dropoff" }, 
        {   161,   190, "Dock" }, 
+       {   162,   191, "Marina" },
+       {   163,   192, "Bait and Tackle" },
+       {   164,   193, "Stump" },
 
        /* New in Garmin protocol spec from June 2006.  Extracted from
         * spec and fed through some horrible awk to add ones we didn't 
         * have before but normalized for consistency. */
        { -1,  8359, "Asian Food" },
-       { -1,  8296, "Blue Circle" },
-       { -1,  8299, "Blue Diamond" },
-       { -1,  8317, "Blue Letter A" },
-       { -1,  8318, "Blue Letter B" },
-       { -1,  8319, "Blue Letter C" },
-       { -1,  8320, "Blue Letter D" },
-       { -1,  8341, "Blue Number 0" },
-       { -1,  8342, "Blue Number 1" },
-       { -1,  8343, "Blue Number 2" },
-       { -1,  8344, "Blue Number 3" },
-       { -1,  8345, "Blue Number 4" },
-       { -1,  8346, "Blue Number 5" },
-       { -1,  8347, "Blue Number 6" },
-       { -1,  8348, "Blue Number 7" },
-       { -1,  8349, "Blue Number 8" },
-       { -1,  8350, "Blue Number 9" },
-       { -1,  8302, "Blue Oval" },
-       { -1,  8305, "Blue Rectangle" },
-       { -1,  8308, "Blue Square" },
-       { -1,  8351, "Blue Triangle" },
+       { 167,  8296, "Circle, Blue" },
+       { 168,  8299, "Diamond, Blue" },
+       { 178,  8317, "Letter A, Blue" },
+       { 181,  8318, "Letter B, Blue" },
+       { 184,  8319, "Letter C, Blue" },
+       { 187,  8320, "Letter D, Blue" },
+       { 190,  8341, "Number 0, Blue" },
+       { 193,  8342, "Number 1, Blue" },
+       { 196,  8343, "Number 2, Blue" },
+       { 199,  8344, "Number 3, Blue" },
+       { 202,  8345, "Number 4, Blue" },
+       { 205,  8346, "Number 5, Blue" },
+       { 208,  8347, "Number 6, Blue" },
+       { 211,  8348, "Number 7, Blue" },
+       { 214,  8349, "Number 8, Blue" },
+       { 217,  8350, "Number 9, Blue" },
+       { 171,  8302, "Oval, Blue" },
+       { 174,  8305, "Rectangle, Blue" },
+       { 175,  8308, "Square, Blue" },
+       { 218,  8351, "Triangle, Blue" },
        { -1,  8254, "Border Crossing (Port Of Entry)" },
        { -1,   182, "Bottom Conditions" },
        { -1,  8360, "Deli" },
@@ -251,24 +254,24 @@ icon_mapping_t garmin_icon_table[] = {
        { -1,  8232, "Geographic place name, land" },
        { -1,  8230, "Geographic place name, Man-made" },
        { -1,  8231, "Geographic place name, water" },
-       { -1,  8295, "Green circle" },
-       { -1,  8313, "Green Letter A" },
-       { -1,  8315, "Green Letter B" },
-       { -1,  8314, "Green Letter C" },
-       { -1,  8316, "Green Letter D" },
-       { -1,  8331, "Green Number 0" },
-       { -1,  8332, "Green Number 1" },
-       { -1,  8333, "Green Number 2" },
-       { -1,  8334, "Green Number 3" },
-       { -1,  8335, "Green Number 4" },
-       { -1,  8336, "Green Number 5" },
-       { -1,  8337, "Green Number 6" },
-       { -1,  8338, "Green Number 7" },
-       { -1,  8339, "Green Number 8" },
-       { -1,  8340, "Green Number 9" },
-       { -1,  8301, "Green Oval" },
-       { -1,  8304, "Green Rectangle" },
-       { -1,  8352, "Green Triangle" },
+       { 166,  8295, "Circle, Green" },
+       { 177,  8313, "Letter A, Green" },
+       { 180,  8315, "Letter B, Green" },
+       { 183,  8314, "Letter C, Green" },
+       { 186,  8316, "Letter D, Green" },
+       { 189,  8331, "Number 0, Green" },
+       { 192,  8332, "Number 1, Green" },
+       { 195,  8333, "Number 2, Green" },
+       { 198,  8334, "Number 3, Green" },
+       { 201,  8335, "Number 4, Green" },
+       { 204,  8336, "Number 5, Green" },
+       { 207,  8337, "Number 6, Green" },
+       { 210,  8338, "Number 7, Green" },
+       { 213,  8339, "Number 8, Green" },
+       { 216,  8340, "Number 9, Green" },
+       { 170,  8301, "Oval, Green" },
+       { 173,  8304, "Rectangle, Green" },
+       { 219,  8352, "Triangle, Green" },
        { -1, 16385, "Intersection" },
        { -1,  8201, "Intl freeway hwy" },
        { -1,  8202, "Intl national hwy" },
@@ -281,24 +284,24 @@ icon_mapping_t garmin_icon_table[] = {
        { -1,   168, "Null" },
        { -1,   180, "Open 24 Hours" },
        { -1,  8222, "Ramp intersection" },
-       { -1,  8294, "Red circle" },
-       { -1,  8309, "Red Letter A" },
-       { -1,  8310, "Red Letter B" },
-       { -1,  8311, "Red Letter C" },
-       { -1,  8312, "Red Letter D" },
-       { -1,  8321, "Red Number 0" },
-       { -1,  8322, "Red Number 1" },
-       { -1,  8323, "Red Number 2" },
-       { -1,  8324, "Red Number 3" },
-       { -1,  8325, "Red Number 4" },
-       { -1,  8326, "Red Number 5" },
-       { -1,  8327, "Red Number 6" },
-       { -1,  8328, "Red Number 7" },
-       { -1,  8329, "Red Number 8" },
-       { -1,  8330, "Red Number 9" },
-       { -1,  8300, "Red Oval" },
-       { -1,  8303, "Red Rectangle" },
-       { -1,  8353, "Red Triangle" },
+       { 165,  8294, "Circle, Red" },
+       { 176,  8309, "Letter A, Red" },
+       { 179,  8310, "Letter B, Red" },
+       { 182,  8311, "Letter C, Red" },
+       { 185,  8312, "Letter D, Red" },
+       { 188,  8321, "Number 0, Red" },
+       { 191,  8322, "Number 1, Red" },
+       { 194,  8323, "Number 2, Red" },
+       { 197,  8324, "Number 3, Red" },
+       { 200,  8325, "Number 4, Red" },
+       { 203,  8326, "Number 5, Red" },
+       { 206,  8327, "Number 6, Red" },
+       { 209,  8328, "Number 7, Red" },
+       { 212,  8329, "Number 8, Red" },
+       { 215,  8330, "Number 9, Red" },
+       { 169,  8300, "Oval, Red" },
+       { 172,  8303, "Rectangle, Red" },
+       { 220,  8353, "Triangle, Red" },
        { -1,  8362, "Seafood" },
        { -1,  8194, "State Hwy" },
        { -1,  8363, "Steak" },
@@ -311,6 +314,37 @@ icon_mapping_t garmin_icon_table[] = {
        { -1, 16387, "VHF Omni-range" },
        { -1, 16397, "VOR-DME" },
        { -1, 16396, "VOR/TACAN" },
+
+       /* This block new on 1/15 from the Mapsource 6.12 beta */
+       { 221, -1, "Contact, Blonde" },
+       { 222, -1, "Contact, Clown" },
+       { 223, -1, "Contact, Glasses" },
+       { 224, -1, "Contact, Panda" },
+       { 225, -1, "Multi-Cache" },
+       { 226, -1, "Letterbox Cache" },
+       { 227, -1, "Puzzle Cache" },
+       { 228, -1, "Library" },
+       { 229, -1, "Ground Transportation" },
+       { 230, -1, "City Hall" },
+       { 231, -1, "Winery" },
+       { 232, -1, "ATV" },
+       { 233, -1, "Big Game" },
+       { 234, -1, "Blind" },
+       { 235, -1, "Blood Trail" },
+       { 236, -1, "Cover" },
+       { 237, -1, "Covey" },
+       { 238, -1, "Food Source" },
+       { 239, -1, "Furbearer" },
+       { 240, -1, "Lodge" },
+       { 241, -1, "Small Game" },
+       { 242, -1, "Animal Tracks" },
+       { 243, -1, "Treed Quarry" },
+       { 244, -1, "Tree Stand" },
+       { 245, -1, "Truck" },
+       { 246, -1, "Upland Game" },
+       { 247, -1, "Waterfowl" },
+       { 248, -1, "Water Source" },
+
        
        {    -1,    -1, NULL },
 };
@@ -651,6 +685,7 @@ gt_find_desc_from_icon_number(const int icon, garmin_formats_e garmin_format, in
 
 int gt_find_icon_number_from_desc(const char *desc, garmin_formats_e garmin_format)
 {
+       static int find_flag = 0;
        icon_mapping_t *i;
        int def_icon = DEFAULT_ICON_VALUE;
        int n;
@@ -691,6 +726,37 @@ int gt_find_icon_number_from_desc(const char *desc, garmin_formats_e garmin_form
                        }
                }
        }
+       
+       /* 
+        *  try to handle some complex icon names: i.e. "Blue Diamond" and "Diamond, Blue"
+        *  "find_flag" prevents us from a possible endless loop
+        */
+       
+       if (find_flag == 0)
+       {
+               char **prefix;
+               char *prefixes[] = {"White ", "Red ", "Green ", "Blue ", "Black ", NULL};
+
+               for (prefix = prefixes; *prefix != NULL; prefix++)
+               {
+                       int len = strlen(*prefix);
+                       
+                       if (case_ignore_strncmp(desc, *prefix, len) == 0)
+                       {
+                               char buff[64];
+                               int result;
+                               
+                               snprintf(buff, sizeof(buff), "%s, %s", &desc[len], *prefix);
+                               rtrim(buff);
+                               
+                               find_flag = 1;
+                               result = gt_find_icon_number_from_desc(buff, garmin_format);
+                               find_flag = 0;
+                               
+                               return result;
+                       }
+               }
+       }
        return def_icon;
 }
 
@@ -767,3 +833,38 @@ gt_get_icao_cc(const char *country, const char *shortname)
        } while (x->country != NULL);
        return NULL;
 }
+
+#if MAKE_TABLE
+
+/*
+ * Used to generate icon tables in appendix. 
+ * cc -DMAKE_TABLE garmin_tables.c fatal.o util.o globals.o  -lm
+ */
+
+int cet_utf8_to_ucs4(const char *str, int *bytes, int *value)
+{
+       fatal("Should not be here.");
+}
+
+
+int
+sortem(const void *a, const void *b)
+{
+       const icon_mapping_t *aa = a;
+       const icon_mapping_t *bb = b;
+
+//     return aa->mpssymnum - bb->mpssymnum;
+       return strcmp(aa->icon, bb->icon);
+
+}
+
+main()
+{
+       icon_mapping_t *i;
+       qsort(garmin_icon_table, sizeof(garmin_icon_table) / sizeof(garmin_icon_table[0]) - 1,  sizeof(garmin_icon_table[0]), sortem);
+       for (i = garmin_icon_table; i->icon; i++) {
+//             printf("%03d\t%s\n", i->mpssymnum, i->icon);
+               printf("<member>%s</member>\n", i->icon);
+       }
+}
+#endif
index 9de5d56e7ed5d65b362deaac36d8d78bccee97fe..d1dc1eb795021458d7ece8193b05ab3afff62e12 100644 (file)
@@ -96,12 +96,14 @@ static char *opt_date_format = NULL;
 static char *opt_time_format = NULL;
 static char *opt_precision = NULL;
 static char *opt_utc = NULL;
+static char *opt_grid = NULL;
 
 static
 arglist_t garmin_txt_args[] = {
        {"date",  &opt_date_format, "Read/Write date format (i.e. yyyy/mm/dd)", NULL, ARGTYPE_STRING, ARG_NOMINMAX}, 
        {"datum", &opt_datum,       "GPS datum (def. WGS 84)", "WGS 84", ARGTYPE_STRING, ARG_NOMINMAX}, 
        {"dist",  &opt_dist,        "Distance unit [m=metric, s=statute]", "m", ARGTYPE_STRING, ARG_NOMINMAX},
+       {"grid",  &opt_grid,        "Write position using this grid.", NULL, ARGTYPE_STRING, ARG_NOMINMAX},
        {"prec",  &opt_precision,   "Precision of coordinates", "3", ARGTYPE_INT, ARG_NOMINMAX},
        {"temp",  &opt_temp,        "Temperature unit [c=Celsius, f=Fahrenheit]", "c", ARGTYPE_STRING, ARG_NOMINMAX}, 
        {"time",  &opt_time_format, "Read/Write time format (i.e. HH:mm:ss xx)", NULL, ARGTYPE_STRING, ARG_NOMINMAX},
@@ -137,6 +139,26 @@ static char *headers[] = {
        NULL
 };
 
+static char *grid_short_names[] = {
+       "ddd",
+       "dmm",
+       "dms",
+       "bng",
+       NULL
+};
+
+static char *grid_long_names[] = {     /* starting at index !!! 3 !!! after inbuild lat/lon ... grids */
+       "British National Grid",
+       NULL
+};
+
+#define GRID_IDX_LAT_LON_DDD   0
+#define GRID_IDX_LAT_LON_DMM   1
+#define GRID_IDX_LAT_LON_DMS   2
+#define GRID_IDX_BNG           3
+
+#define GRID_IDX_MAX           GRID_IDX_BNG
+
 /* helpers */
 
 static char *
@@ -313,30 +335,59 @@ prework_wpt_cb(const waypoint *wpt)
 static void
 print_position(const waypoint *wpt)
 {
-       int deg;
-       double min;
-       char num[64];
-       double lat, lon;
+       int valid;
+       double lat, lon, north, east;
+       char map[3];
+       char latsig, lonsig;
+       double  latmin, lonmin, latsec, lonsec;
+       int     latint, lonint;
        
        convert_datum((waypoint *)wpt, 0, &lat, &lon);
 
-       deg = fabs(lat);
-       min = (double)60.0 * (fabs(lat) - deg);
-       snprintf(num, sizeof(num), "%0*.*f", precision + 3, precision, min);
-       if (atoi(num) == 60) {
-               deg++;
-               min = 0;
-       }
-       gbfprintf(fout, "%c%d %0*.*f ", lat < 0.0 ? 'S' : 'N', deg, precision + 3, precision, min);
-       
-       deg = fabs(lon);
-       min = (double)60.0 * (fabs(lon) - deg);
-       snprintf(num, sizeof(num), "%0*.*f", precision + 3, precision, min);
-       if (atoi(num) == 60) {
-               deg++;
-               min = 0;
+       /* ----------------------------------------------------------------------------*/
+       /*            the following code is from pretty_deg_format (util.c)            */
+       /* ----------------------------------------------------------------------------*/
+       /* !ToDo! generate common code for calculating of degrees, minutes and seconds */
+       /* ----------------------------------------------------------------------------*/
+       
+       latsig = lat < 0 ? 'S':'N';
+       lonsig = lon < 0 ? 'W':'E';
+       latint = abs((int) lat);
+       lonint = abs((int) lon);
+       latmin = 60.0 * (fabs(lat) - latint);
+       lonmin = 60.0 * (fabs(lon) - lonint);
+       latsec = 60.0 * (latmin - floor(latmin));
+       lonsec = 60.0 * (lonmin - floor(lonmin));
+
+       switch(grid_index) {
+
+       case GRID_IDX_LAT_LON_DDD:
+       
+               gbfprintf(fout, "%c%0.*f %c%0.*f\t", 
+                       latsig, precision, fabs(lat), 
+                       lonsig, precision, fabs(lon));
+               break;
+
+       case GRID_IDX_LAT_LON_DMM:
+       
+               gbfprintf(fout, "%c%d %0*.*f %c%d %0*.*f\t",
+                       latsig, latint, precision + 3, precision, latmin,
+                       lonsig, lonint, precision + 3, precision, lonmin);
+               break;
+               
+       case GRID_IDX_LAT_LON_DMS:
+       
+               gbfprintf(fout, "%c%d %d %.*f %c%d %d %.*f\t", 
+                       latsig, latint, (int)latmin, precision, latsec,
+                       lonsig, lonint, (int)lonmin, precision, lonsec);
+               break;
+
+       case GRID_IDX_BNG:
+               valid = GPS_Math_WGS84_To_UKOSMap_M(wpt->latitude, wpt->longitude, &east, &north, map);
+               is_fatal(! valid, MYNAME ": Some (or all?) of the coordinates cannot be displayed using \"BNG\".");
+               gbfprintf(fout, "%s %5.0f %5.0f", map, east, north);
+               break;
        }
-       gbfprintf(fout, "%c%d %0*.*f\t", lon < 0.0 ? 'W' : 'E', deg, precision + 3,  precision, min);
 }
 
 static void
@@ -691,10 +742,11 @@ track_disp_wpt_cb(const waypoint *wpt)
 static void
 garmin_txt_wr_init(const char *fname)
 {
+       char *grid_str;
+       
        memset(&gtxt_flags, 0, sizeof(gtxt_flags));
        
        fout = gbfopen(fname, "wb", MYNAME);
-       grid_index = 1;
        
        gtxt_flags.metric = (toupper(*get_option_val(opt_dist, "m")) == 'M');
        gtxt_flags.celsius = (toupper(*get_option_val(opt_temp, "c")) == 'C');
@@ -703,9 +755,47 @@ garmin_txt_wr_init(const char *fname)
                precision = atoi(opt_precision);
                is_fatal(precision < 0, MYNAME ": Invalid precision (%s)!", opt_precision);
        }
+
        datum_str = get_option_val(opt_datum, NULL);
-       datum_index = GPS_Lookup_Datum_Index(datum_str);
-       is_fatal(datum_index < 0, MYNAME ": Invalid or unknown gps datum (%s)!", datum_str);
+       grid_str = get_option_val(opt_grid, NULL);
+
+       grid_index = -1;
+       if (grid_str == NULL) {
+               grid_index = 1; /* default: dmm */
+       }
+       else if (! sscanf(grid_str, "%d", &grid_index)) {
+               char *name;
+               int index;
+               
+               index = 0;
+               while ((name = grid_short_names[index])) {
+                       if (case_ignore_strcmp(name, grid_str) == 0) {
+                               grid_index = index;
+                               break;
+                       }
+                       index++;
+               }
+               if (name == NULL) {     /* look in "long names" */
+                       index = 0;
+                       while ((name = grid_long_names[index])) {
+                               if (case_ignore_strcmp(name, grid_str) == 0) break;
+                               else index++;
+                       }
+                       is_fatal(name == NULL,
+                               MYNAME ": Unsupported grid (%s). See GPSBabel help for supported grids.", grid_str);
+                       grid_index = 3 + index;
+               }
+       }
+       else is_fatal(grid_index > GRID_IDX_MAX, MYNAME ": Grid index out of range (0..%d)!", GRID_IDX_MAX);
+       
+       switch(grid_index) {
+       case GRID_IDX_BNG: /* force datum to "Ord Srvy Grt Britn" */
+               datum_index = GPS_Lookup_Datum_Index("OSGB36");
+               break;
+       default:
+               datum_index = GPS_Lookup_Datum_Index(datum_str);
+               is_fatal(datum_index < 0, MYNAME ": Invalid or unknown gps datum (%s)!", datum_str);
+       }
        
        if (opt_utc != NULL) {
                if (case_ignore_strcmp(opt_utc, "utc") == 0)
@@ -727,7 +817,22 @@ garmin_txt_wr_deinit(void)
 static void
 garmin_txt_write(void)
 {
-       cet_gbfprintf(fout, &cet_cs_vec_cp1252, "Grid\tLat/Lon hddd%cmm.mmm'\r\n", 0xB0);
+       switch(grid_index) {
+       case 0:
+               cet_gbfprintf(fout, &cet_cs_vec_cp1252, "Grid\tLat/Lon hddd.ddddd%c\r\n", 0xB0);
+               break;
+       case 1:
+               cet_gbfprintf(fout, &cet_cs_vec_cp1252, "Grid\tLat/Lon hddd%cmm.mmm'\r\n", 0xB0);
+               break;
+       case 2:
+               cet_gbfprintf(fout, &cet_cs_vec_cp1252, "Grid\tLat/Lon hddd%cmm'ss.s\"\r\n", 0xB0);
+               break;
+       case GRID_IDX_BNG:
+               cet_gbfprintf(fout, &cet_cs_vec_cp1252, "Grid\t%s\r\n", grid_long_names[0]);
+               datum_str = "Ord Srvy Grt Britn";
+               break;
+       }
+       
        gbfprintf(fout, "Datum\t%s\r\n\r\n", datum_str);
 
        waypoints = 0;
@@ -803,23 +908,31 @@ static void
 parse_position(const char *str, waypoint *wpt)
 {
        double lat, lon;
-       unsigned char lathemi, hemilon;
+       unsigned char lathemi, lonhemi;
        int deg_lat, deg_lon, min_lat, min_lon;
+       char map[3];
        
        switch(grid_index) {
-               case 0:
-                       sscanf(str, "%c%lf %c%lf", &lathemi, &lat, &hemilon, &lon);
-                       break;
-               case 1:
-                       sscanf(str, "%c%d %lf %c%d %lf", &lathemi, &deg_lat, &lat, &hemilon, &deg_lon, &lon);
-                       lat = (double)deg_lat + (lat / (double)60);
-                       lon = (double)deg_lon + (lon / (double)60);
-                       break;
-               case 2:
-                       sscanf(str, "%c%d %d %lf %c%d %d %lf", &lathemi, &deg_lat, &min_lat, &lat, &hemilon, &deg_lon, &min_lon, &lon);
-                       lat = (double)deg_lat + ((double)min_lat / (double)60) + (lat / (double)3600.0);
-                       lon = (double)deg_lon + ((double)min_lon / (double)60) + (lon / (double)3600.0);
-                       break;
+       
+       case GRID_IDX_LAT_LON_DDD:
+               sscanf(str, "%c%lf %c%lf", &lathemi, &lat, &lonhemi, &lon);
+               break;
+               
+       case GRID_IDX_LAT_LON_DMM:
+               sscanf(str, "%c%d %lf %c%d %lf", &lathemi, &deg_lat, &lat, &lonhemi, &deg_lon, &lon);
+               lat = (double)deg_lat + (lat / (double)60);
+               lon = (double)deg_lon + (lon / (double)60);
+               break;
+       case GRID_IDX_LAT_LON_DMS:
+               sscanf(str, "%c%d %d %lf %c%d %d %lf", &lathemi, &deg_lat, &min_lat, &lat, &lonhemi, &deg_lon, &min_lon, &lon);
+               lat = (double)deg_lat + ((double)min_lat / (double)60) + (lat / (double)3600.0);
+               lon = (double)deg_lon + ((double)min_lon / (double)60) + (lon / (double)3600.0);
+               break;
+               
+       case GRID_IDX_BNG:
+               sscanf(str, "%2s %lf %lf", map, &lat, &lon);
+               lathemi = lonhemi = '\0';
+               break;
        }
        
        if (lathemi == 'S') 
@@ -827,7 +940,7 @@ parse_position(const char *str, waypoint *wpt)
        else
                wpt->latitude = lat;
 
-       if (hemilon == 'W')
+       if (lonhemi == 'W')
                wpt->longitude = -lon;
        else
                wpt->longitude = lon;
@@ -1025,11 +1138,25 @@ static void
 parse_grid(void)
 {
        char *str = csv_lineparse(NULL, "\t", "", 1);
+       grid_index = -1;
+       
        if (str != NULL) {
-               if (strstr(str, "dd.ddddd") != 0) grid_index = 0;
-               else if (strstr(str, "mm.mmm") != 0) grid_index = 1;
-               else if (strstr(str, "mm'ss.s") != 0) grid_index = 2;
-               else fatal(MYNAME ": Unsupported grid (%s)!\n", str);
+               if (strstr(str, "dd.ddddd") != 0) grid_index = GRID_IDX_LAT_LON_DDD;
+               else if (strstr(str, "mm.mmm") != 0) grid_index = GRID_IDX_LAT_LON_DMM;
+               else if (strstr(str, "mm'ss.s") != 0) grid_index = GRID_IDX_LAT_LON_DMS;
+               else {
+                       char *name;
+                       int index = 0;
+
+                       while ((name = grid_long_names[index])) {
+                               if (case_ignore_strcmp(name, str) == 0) {
+                                       grid_index = GRID_IDX_BNG + index;
+                                       break;
+                               }
+                               index++;
+                       }
+               }
+               is_fatal(grid_index < 0, MYNAME ": Unsupported grid (%s)!", str);
        }
        else
                fatal(MYNAME ": Missing grid headline!\n");
@@ -1196,7 +1323,7 @@ parse_track_waypoint(void)
 /***************************************************************/
 
 static void
-garmin_rd_init(const char *fname)
+garmin_txt_rd_init(const char *fname)
 {
        memset(&gtxt_flags, 0, sizeof(gtxt_flags));
        
@@ -1210,7 +1337,7 @@ garmin_rd_init(const char *fname)
 }
 
 static void 
-garmin_rd_deinit(void)
+garmin_txt_rd_deinit(void)
 {
        header_type h;
 
@@ -1258,9 +1385,9 @@ garmin_txt_read(void)
 ff_vecs_t garmin_txt_vecs = {
        ff_type_file,
        FF_CAP_RW_ALL,
-       garmin_rd_init, 
+       garmin_txt_rd_init,     
        garmin_txt_wr_init,     
-       garmin_rd_deinit,       
+       garmin_txt_rd_deinit,   
        garmin_txt_wr_deinit,   
        garmin_txt_read,
        garmin_txt_write,
index bc5505550d60297094fbf1e7f975d008992857fe..e86c491ecd25773670eb6d85c518035790282331 100644 (file)
--- a/gbfile.c
+++ b/gbfile.c
@@ -1,8 +1,7 @@
 /*
 
     Common GPSBabel file I/O API
-
-    Copyright (C) 2006 Olaf Klein 
+    Copyright (C) 2006 Olaf Klein, o.b.klein@gpsbabel.org
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -40,7 +39,7 @@
 #endif
 
 #define MYNAME "gbfile"
-#define NO_ZLIB MYNAME ": No zlib support\n."
+#define NO_ZLIB MYNAME ": No zlib support.\n"
 
 /* About the ZLIB_INHIBITED stuff:
  * 
 
 /* GPSBabel 'file' standard calls */
 
+/*
+ * gbfopen: (as xfopen) plus the name of the calling GPSBabel module (MYNAME)
+ */
+
 gbfile *
 gbfopen(const char *filename, const char *mode, const char *module)
 {
@@ -67,6 +70,7 @@ gbfopen(const char *filename, const char *mode, const char *module)
        file->line = xstrdup("");
        file->mode = 'r'; // default
        file->binary = (strchr(mode, 'b') != NULL);
+       file->back = -1;
        
        for (m = mode; *m; m++) {
                switch(tolower(*m)) {
@@ -85,8 +89,12 @@ gbfopen(const char *filename, const char *mode, const char *module)
        /* Do we have a '.gz' extension in the filename ? */
        len = strlen(file->name);
        if ((len > 3) && (case_ignore_strcmp(&file->name[len-3], ".gz") == 0)) {
+#if !ZLIB_INHIBITED
                /* force gzipped files on output */
                file->gzapi = 1;
+#else
+               fatal(NO_ZLIB);
+#endif
        }
        
        if (file->gzapi) {
@@ -151,6 +159,10 @@ gbfopen_be(const char *filename, const char *mode, const char *module)
        return result;
 }
 
+/*
+ * gbfclose: (as fclose)
+ */
 void
 gbfclose(gbfile *file)
 {
@@ -173,6 +185,10 @@ gbfclose(gbfile *file)
        xfree(file);
 }
 
+/*
+ * gbfgetc: (as fgetc)
+ */
 int 
 gbfgetc(gbfile *file)
 {
@@ -187,6 +203,10 @@ gbfgetc(gbfile *file)
        }
 }
 
+/*
+ * gbfgets: (as fgets)
+ */
 char * 
 gbfgets(char *buf, int len, gbfile *file)
 {
@@ -212,7 +232,10 @@ gbfgets(char *buf, int len, gbfile *file)
        return (*result != '\0') ? result : NULL;
 }
 
-
+/*
+ * gbfread: (as fread)
+ */
 gbsize_t
 gbfread(void *buf, const gbsize_t size, const gbsize_t members, gbfile *file)
 {
@@ -220,14 +243,29 @@ gbfread(void *buf, const gbsize_t size, const gbsize_t members, gbfile *file)
        
        if (file->gzapi) {
 #if !ZLIB_INHIBITED
-               int result;
-               result = gzread(file->handle.gz, buf, size * members) / size;
+               int result = 0;
+               char *target = buf;
+               int count = size * members;
+               
+               if (file->back != -1) {
+                       *target++ = file->back;
+                       count--;
+                       result++;
+                       file->back = -1;
+               }
+               result += gzread(file->handle.gz, target, count);
+               result /= size;
 
                if ((result < 0) || ((gbsize_t)result < members)) {
                        int errnum;
                        const char *errtxt;
                        
                        errtxt = gzerror(file->handle.gz, &errnum);
+                       
+                       /* Workaround for zlib bug: buffer error on empty files */
+                       if ((errnum == Z_BUF_ERROR) && (gztell(file->handle.gz) == 0)) {
+                               return (gbsize_t) 0;
+                       }
                        if ((errnum != Z_STREAM_END) && (errnum != 0))
                                fatal("%s: zlib returned error %d ('%s')!\n",
                                        file->module, errnum, errtxt);
@@ -250,6 +288,10 @@ gbfread(void *buf, const gbsize_t size, const gbsize_t members, gbfile *file)
        }
 }
 
+/*
+ * gbfprintf: (as fprintf)
+ */
 int 
 gbfprintf(gbfile *file, const char *format, ...)
 {
@@ -287,6 +329,10 @@ gbfprintf(gbfile *file, const char *format, ...)
        return gbfwrite(file->buff, 1, len, file);
 }
 
+/*
+ * gbfputc: (as fputc)
+ */
 int 
 gbfputc(int c, gbfile *file)
 {
@@ -297,12 +343,20 @@ gbfputc(int c, gbfile *file)
        return c;
 }
 
+/*
+ * gbfputs: (as fputs)
+ */
+
 int 
 gbfputs(const char *s, gbfile *file)
 {
        return gbfwrite(s, 1, strlen(s), file);
 }
 
+/*
+ * gbfwrite: (as fwrite)
+ */
+
 int 
 gbfwrite(const void *buf, const gbsize_t size, const gbsize_t members, gbfile *file)
 {
@@ -332,6 +386,10 @@ gbfwrite(const void *buf, const gbsize_t size, const gbsize_t members, gbfile *f
        return result;
 }
 
+/*
+ * gbfflush: (as fflush)
+ */
 int
 gbfflush(gbfile *file)
 {
@@ -348,12 +406,18 @@ gbfflush(gbfile *file)
        }
 }
 
+/*
+ * gbfclearerr: (as clearerr)
+ */
+
 void
 gbfclearerr(gbfile *file)
 {
        if (file->gzapi) {
 #if !ZLIB_INHIBITED
                gzclearerr(file->handle.gz);
+#else
+               fatal(NO_ZLIB);
 #endif
        }
        else {
@@ -361,6 +425,10 @@ gbfclearerr(gbfile *file)
        }
 }
 
+/*
+ * gbferror: (as ferror)
+ */
 int
 gbferror(gbfile *file)
 {
@@ -380,6 +448,10 @@ gbferror(gbfile *file)
        return errnum;
 }
 
+/*
+ * gbfrewind: (as frewind)
+ */
 void
 gbfrewind(gbfile *file)
 {
@@ -387,6 +459,10 @@ gbfrewind(gbfile *file)
        gbfclearerr(file);
 }
 
+/*
+ * gbfseek: (as fseek)
+ */
 int
 gbfseek(gbfile *file, gbint32 offset, int whence)
 {
@@ -397,12 +473,17 @@ gbfseek(gbfile *file, gbint32 offset, int whence)
                assert(whence != SEEK_END);
 
 #if !ZLIB_INHIBITED
+               if ((whence == SEEK_CUR) && (file->back != -1)) offset--;
                result = gzseek(file->handle.gz, offset, whence);
+               file->back = -1;
 #else
                result = 1;
 #endif
-               is_fatal(result < 0,
-                       "%s: online compression not yet supported for this format!", file->module);
+               if (result < 0) {
+                       if (strcmp(file->name, "-") == 0)
+                               fatal("%s: This format cannot be used in piped commands!\n", file->module);
+                       fatal("%s: online compression not yet supported for this format!", file->module);
+               }
                return 0;
                
        }
@@ -411,12 +492,21 @@ gbfseek(gbfile *file, gbint32 offset, int whence)
        }
 }
 
+/*
+ * gbftell: (as ftell)
+ */
+
 gbsize_t 
 gbftell(gbfile *file)
 {
        if (file->gzapi) {
 #if !ZLIB_INHIBITED
-               return gztell(file->handle.gz);
+               gbsize_t result = gztell(file->handle.gz);
+               if (file->back != -1) {
+                       file->back = -1;
+                       result--;
+               }
+               return result;
 #else
                fatal(NO_ZLIB);
                return -1;
@@ -427,12 +517,37 @@ gbftell(gbfile *file)
        }
 }
 
+/*
+ * gbfeof: (as feof)
+ */
+
 int 
 gbfeof(gbfile *file)
 {
        if (file->gzapi) {
 #if !ZLIB_INHIBITED
-               return gzeof(file->handle.gz);
+               int res;
+               
+               if (file->back != -1) return 0;
+
+               res  = gzeof(file->handle.gz);
+               if (!res) {
+                       signed char test;
+                       int len = gzread(file->handle.gz, &test, 1);
+                       if (len == 1) {
+                               /* No EOF, put the single byte back into stream */
+                               file->back = test;
+                       }
+                       else {
+                               /* we are at the end of the file */
+                               if (global_opts.debug_level > 0) {
+                                       /* now gzeof() should return 1 */
+                                       is_fatal(!gzeof(file->handle.gz), "zlib gzeof error!\n");
+                               }
+                               res = 1;
+                       }
+               }
+               return res;
 #else
                fatal(NO_ZLIB);
                return 0;
@@ -443,13 +558,17 @@ gbfeof(gbfile *file)
        }
 }
 
+/*
+ * gbfungetc: (as fungetc)
+ */
+
 int
 gbfungetc(const int c, gbfile *file)
 {
        int r = -1;
        if (file->gzapi) {
 #if !ZLIB_INHIBITED
-               r = gzungetc(c, file->handle.gz);
+               file->back = -1;
 #else
                fatal(NO_ZLIB);
 #endif
@@ -462,25 +581,33 @@ gbfungetc(const int c, gbfile *file)
 
 /* GPSBabel 'file' enhancements */
 
+/*
+ * gbfgetint32: read a signed 32-bit integer from input stream
+ */
+
 gbint32
 gbfgetint32(gbfile *file)
 {
        char buf[4];
        
-       gbfread(buf, 1, sizeof(buf), file);
-       
+       gbfread(&buf, 1, sizeof(buf), file);
+
        if (file->big_endian)
                return be_read32(buf);
        else
                return le_read32(buf);
 }
 
+/*
+ * gbfgetint16: read a signed 16-bit integer from input stream
+ */
+
 gbint16
 gbfgetint16(gbfile *file)
 {
        char buf[2];
        
-       gbfread(buf, 1, sizeof(buf), file);
+       gbfread(&buf, 1, sizeof(buf), file);
        
        if (file->big_endian)
                return be_read16(buf);
@@ -488,54 +615,63 @@ gbfgetint16(gbfile *file)
                return le_read16(buf);
 }
 
+/*
+ * gbfgetdbl: read a double value (8 byte, double precision) from input stream
+ */
+
 double 
 gbfgetdbl(gbfile *file)
 {
        char buf[8];
-       gbfread(buf, 1, sizeof(buf), file);
-       return le_read_double(buf);
+
+       gbfread(&buf, 1, sizeof(buf), file);
+
+       return endian_read_double(buf, ! file->big_endian);
 }
 
+/*
+ * gbfgetflt: read a float value (4 byte, single precision) from input stream
+ */
+
 float
 gbfgetflt(gbfile *file)
 {
-       union {
-               float f;
-               gbint32 i;
-       } x;
+       char buf[4];
        
-       x.i = gbfgetint32(file);
-       return x.f;
+       gbfread(&buf, 1, sizeof(buf), file);
+
+       return endian_read_float(buf, ! file->big_endian);
 }
 
 /*
  * gbfgetcstr: Reads a string from file until either a '\0' or eof.
  *             The result is a temporary allocated entity: use it or free it!
  */
 char *
 gbfgetcstr(gbfile *file)
 {
-       int len, size;
        char *result;
+       int len = 0;
+       char *str = file->buff;
        
-       len = size = 0;
-       result = xstrdup("");
-       
-       while (1) {
+       for (;;) {
                char c = gbfgetc(file);
                
                if ((c == 0) || (c == EOF)) break;
                
-               if (len == size) {
-                       size += 32;
-                       result = xrealloc(result, size + 1);
+               if (len == file->buffsz) {
+                       file->buffsz += 64;
+                       str = file->buff = xrealloc(file->buff, file->buffsz + 1);
                }
-               result[len] = c;
+               str[len] = c;
                len++;
        }
        
-       if ((len + 1) != size)
-               result = xrealloc(result, len + 1);
+       result = (char *) xmalloc(len + 1);
+       if (len > 0)
+               memcpy(result, str, len);
+       result[len] = '\0';
        
        return result;
 }
@@ -544,6 +680,7 @@ gbfgetcstr(gbfile *file)
  * gbfgetpstr: Reads a pascal string (first byte is length) from file.
  *             The result is a temporary allocated entity: use it or free it!
  */
+
 char *
 gbfgetpstr(gbfile *file)
 {
@@ -552,9 +689,9 @@ gbfgetpstr(gbfile *file)
        
        len = gbfgetc(file);
        result = xmalloc(len + 1);
-       
-       if (len > 0)
+       if (len > 0) {
                gbfread(result, 1, len, file);
+       }
        result[len] = '\0';
        
        return result;
@@ -564,15 +701,14 @@ gbfgetpstr(gbfile *file)
  * gbfgetstr: Reads a string from file (util any type of line-breaks or eof or error)
  *            except xfree and free you can do all possible things with the result
  */
+
 char *
 gbfgetstr(gbfile *file)
 {
-       int len;
+       int len = 0;
        char *result = file->line;
        
-       len = file->linesz = 0;
-       
-       while (1) {
+       for (;;) {
                char c = gbfgetc(file);
                
                if ((c == EOF) || (c == 0x1A)) {
@@ -583,24 +719,29 @@ gbfgetstr(gbfile *file)
                }
                else if (c == '\r') {
                        c = gbfgetc(file);
-                       if ((c != '\n') && (c != EOF)) gbfungetc(c, file);
+                       if ((c != '\n') && (c != EOF))
+                               gbfungetc(c, file);
                        break;
                }
                else if (c == '\n') {
                        break;
                }
                if (len == file->linesz) {
-                       file->linesz = len + 128;
-                       result = file->line = xrealloc(file->line, len + 128 + 1);
+                       file->linesz += 64;
+                       result = file->line = xrealloc(file->line, file->linesz + 1);
                }
                result[len] = c;
                len++;
        }
-       result[len] = '\0'; // terminate resulting string
+       result[len] = '\0';     // terminate resulting string
        
        return result;
 }
 
+/*
+ * gbfputint16: write a signed 16-bit integer value into output stream
+ */
 int
 gbfputint16(const gbint16 i, gbfile *file)
 {
@@ -613,6 +754,10 @@ gbfputint16(const gbint16 i, gbfile *file)
        return gbfwrite(buf, 1, sizeof(buf), file);
 }
 
+/*
+ * gbfputint32: write a signed 32-bit integer value into output stream
+ */
+
 int
 gbfputint32(const gbint32 i, gbfile *file)
 {
@@ -625,43 +770,68 @@ gbfputint32(const gbint32 i, gbfile *file)
        return gbfwrite(buf, 1, sizeof(buf), file);
 }
 
+/*
+ * gbfputdbl: write a double value (8 byte, double precision) into output stream
+ */
+
 int
 gbfputdbl(const double d, gbfile *file)
 {
        char buf[8];
-       le_write_double(buf, d );
+       
+       endian_write_double(buf, d, ! file->big_endian);
        return gbfwrite(buf, 1, sizeof(buf), file);
 }
 
+/*
+ * gbfputflt: write a float value (4 byte, single precision) into output stream
+ */
+
 int 
 gbfputflt(const float f, gbfile *file)
 {
-       union {
-               float f;
-               gbint32 i; } x;
-               
-       x.f = f;
-       return gbfputint32(x.i, file);
+       char buf[4];
+       
+       endian_write_float(buf, f, ! file->big_endian);
+       return gbfwrite(buf, 1, sizeof(buf), file);
 }
 
+/*
+ * gbfputcstr: write a NULL terminated string into a stream (!) including NULL
+ *             return the number of written characters
+ */
+
 int 
 gbfputcstr(const char *s, gbfile *file)
 {
-       return gbfwrite(s, 1, strlen(s) + 1, file);
+       int len;
+       
+       len = (s == NULL) ? 0 : strlen(s);
+       if (len > 0) {
+               return gbfwrite(s, 1, len + 1, file);
+       } else {
+               gbfputc(0, file);
+               return 1;
+       }
 }
 
+/*
+ * gbfputcstr: write a pascal string into a stream
+ *             return the number of written characters
+ */
+
 int
 gbfputpstr(const char *s, gbfile *file)
 {
        int len;
        
-       len = strlen(s);
-       if (len > 255)
-               len = 255;
+       len = (s == NULL) ? 0 : strlen(s);
+       if (len > 255) len = 255;       /* the maximum size of a standard pascal string */
        gbfputc(len, file);
-       gbfwrite(s, 1, len, file);
-       
-       return len + 1;
+       if (len > 0) {
+               gbfwrite(s, 1, len, file);
+       }
+       return (len + 1);
 }
 
-/* Thats all, sorry */
+/* Thats all, sorry. */
index 596e9c2c5dcd510efff9b7713d20d5c1401987d2..7b1d28a7b68afac6ab57899cc3bb4c97ceec9f60 100644 (file)
--- a/gbfile.h
+++ b/gbfile.h
@@ -44,6 +44,7 @@ typedef struct gbfile_s {
        char   *buff;   /* static growing buffer, primary used by gbprintf */
        int    buffsz;
        char   mode;
+       int    back;
        unsigned char big_endian:1;
        unsigned char binary:1;
        unsigned char gzapi:1;
@@ -81,6 +82,7 @@ double gbfgetdbl(gbfile *file);                       // read a double value
 float gbfgetflt(gbfile *file);                 // read a float value
 char *gbfgetstr(gbfile *file);                 // read until any type of line-breaks or EOF
 char *gbfgetpstr(gbfile *file);                        // read a pascal string
+char *gbfgetcstr(gbfile *file);                        // read a null terminated string
 
 int gbfputint16(const gbint16 i, gbfile *file);
 #define gbfputuint16(a,b) gbfputint16((gbuint16)(a),(b))
index 6e398c13f5f18c28d370e6ebb5a030f351d3aafe..69f310b30601b6c76596238fabfe435ab9a617ce 100644 (file)
@@ -57,6 +57,7 @@ static speed_t mkspeed(unsigned br) {
     case   4800: return  B4800;
     case   9600: return  B9600;
     case  19200: return  B19200;
+    case  38400: return  B38400;
 #if defined B57600
     case  57600: return  B57600;
 #endif
index 145969e36a979cec224c73bc6700a3b3a6b59740..c1a05269c3393bee2f8aa265ec8ca549330f6c8f 100644 (file)
@@ -54,6 +54,7 @@ static DWORD mkspeed(unsigned br) {
        case   4800: return CBR_4800;
        case   9600: return CBR_9600;
        case  19200: return CBR_19200;
+       case  38400: return CBR_38400;
        case  57600: return CBR_57600;
        case 115200: return CBR_115200;
     default:
index ad16fc88a897a9f9d753267d1589997aa21e6b6d..d247648af8420552ded2788dbb90bb849591dc6a 100644 (file)
--- a/gbtypes.h
+++ b/gbtypes.h
@@ -52,5 +52,7 @@ typedef  int16_t       gbint16;
 #endif /* defined(_MSC_VER) */
 
 typedef gbuint32       gbsize_t;
+typedef unsigned char  gbuint8;
+typedef signed char    gbint8;
 
 #endif /* gb_types_h_included */
diff --git a/gbversion.h b/gbversion.h
new file mode 100644 (file)
index 0000000..76e8590
--- /dev/null
@@ -0,0 +1,8 @@
+/*
+ * gbversion.h is generated from gbversion.h.in which uses autoconf voodoo
+ * to get the version number from configure.in.
+ *
+ * Isn't simplification via automation grand?
+ */
+#define VERSION "1.3.3"
+
diff --git a/gbversion.h.in b/gbversion.h.in
new file mode 100644 (file)
index 0000000..db491f9
--- /dev/null
@@ -0,0 +1,8 @@
+/*
+ * gbversion.h is generated from gbversion.h.in which uses autoconf voodoo
+ * to get the version number from configure.in.
+ *
+ * Isn't simplification via automation grand?
+ */
+#define VERSION "@GBMAJOR@.@GBMINOR@.@GBMICRO@@PACKAGE_RELEASE@"
+
diff --git a/gdb.c b/gdb.c
index 460c78d2897fc06b3136b72ffa1645608c18285f..e2c23825c9d30ae0ec4cec68265b6e8976142e40 100644 (file)
--- a/gdb.c
+++ b/gdb.c
@@ -1,7 +1,7 @@
 /* 
        Garmin GPS Database Reader/Writer
        
-       Copyright (C) 2005,2006 Olaf Klein, o.b.klein@gpsbabel.org
+       Copyright (C) 2005-2007 Olaf Klein, o.b.klein@gpsbabel.org
        Mainly based on mapsource.c,
        Copyright (C) 2005 Robert Lipe, robertlipe@usa.net
        
@@ -51,6 +51,8 @@
            2006/04/19: add url i/o to tracks and routes
            2006/04/19: check for empty waypoint shortnames (paranioa)
            2006/11/01: Use version of GPSBabel and date/time of gdb.c (managed by CVS) for watermark
+           2007/01/23: add support for GDB version 3
+           2007/02/07: Add special code for unknown bytes in waypoints with class GE 8 (calculated points)
 */
 
 #include <stdio.h>
@@ -62,6 +64,7 @@
 #include "garmin_tables.h"
 #include "jeeps/gpsmath.h"
 #include "garmin_fs.h"
+#include "cet_util.h"
 
 #define MYNAME "gdb"
 
@@ -87,8 +90,8 @@
 
 /* %%% local vars %%% */
 
-/* static char gdb_release[] = "$Revision: 1.43 $"; */
-static char gdb_release_date[] = "$Date: 2006/11/01 22:23:39 $";
+/* static char gdb_release[] = "$Revision: 1.48 $"; */
+static char gdb_release_date[] = "$Date: 2007/02/20 20:51:15 $";
 
 static FILE *fin, *fout;
 static char *fin_name, *fout_name;
@@ -359,6 +362,9 @@ gdb_read_file_header(void)
            case 'l':
                gdb_ver = 2;
                break;
+           case 'm':
+               gdb_ver = 3;
+               break;
            default:
                fatal(MYNAME ": Non supported GDB version!\n");
        }
@@ -495,21 +501,45 @@ gdb_read_wpt(const size_t fileofs, int *wptclass)
            GMSD_SET(depth, xdepth);
        }
        
-       gdb_fread(buff, 1);
-       gdb_fread(buff, 1);
-
-       if (gdb_fread_flag(0))
-           gdb_fread(buff, 3);
-       else
+       if (gdb_ver >= 3) {
+           int url_ct, unkn;
+           char *url = NULL;
+           
+           unkn = gdb_fread_le(&unkn, sizeof(unkn), 32, prefix, "unknown dword(x) since v3");
            gdb_fread(buff, 2);
-       
-       do                                                              /* undocumented & unused string */
-       {
-           gdb_fread(buff, 1);
+           
+           gdb_fread_str(xurl, sizeof(xurl));                          /* what dagmar will say */
+           
+           url_ct = gdb_fread_le(&url_ct, sizeof(url_ct), 32, prefix, "number of urls (since v3)");
+           gdb_is_valid((url_ct >= 0), prefix, "Number of urls (since v3)");
+           
+           while (url_ct > 0) {
+               url_ct--;
+               gdb_fread_str(xurl, sizeof(xurl));                      /* URL list */
+               if ((url == NULL) && (xurl[0] != '\0'))
+                   url = xstrdup(xurl);                                /* keep only the first valid entry */
+           }
+           if (url != NULL) {
+               strncpy(xurl, url, sizeof(xurl));
+               xfree(url);
+           }
        }
-       while (buff[0] != 0);
+       else {  /* gdb_ver <= 2 */
+           gdb_fread(buff, 2);
 
-       gdb_fread_str(xurl, sizeof(xurl));                              /* URL */
+           if (gdb_fread_flag(0))
+               gdb_fread(buff, 3);
+           else
+               gdb_fread(buff, 2);
+       
+           do                                                          /* undocumented & unused string */
+           {
+               gdb_fread(buff, 1);
+           }
+           while (buff[0] != 0);
+
+           gdb_fread_str(xurl, sizeof(xurl));                          /* URL */
+       }
        
        xcat = gdb_fread_le(&xcat, sizeof(xcat), 16, prefix, "category");
        if (xcat != 0) GMSD_SET(category, xcat);
@@ -519,28 +549,55 @@ gdb_read_wpt(const size_t fileofs, int *wptclass)
            GMSD_SET(temperature, xtemp);
        }
 
-       /* Here comes 1 .. 6 unknown bytes
-          !!! 6 only if class > 0 !!!
-          the field seems to be a time stamp */
-       
        pos = ftell(fin);
        delta = fileofs - pos;
-       gdb_is_valid(delta > 0, prefix, "waypoint final");
-       
-       if ((delta & 1) == 0)
-       {
-           gdb_fread(buff, 1);
+       gdb_is_valid((delta > 0), prefix, "waypoint final");
+
+       if (gdb_ver >= 3) {
            delta--;
+           if (gdb_fread_flag(1)) {
+               gdb_is_valid((delta >= 4), prefix, "No waypoint time (v3++)");
+               gdb_fread_le(&xtime, sizeof(xtime), 32, prefix, "time");
+               gdb_is_valid((xtime > 0), prefix, "Invalid time (v3++)");
+               delta-=sizeof(xtime);
+           }
+           else
+               xtime = 0;
+           if (delta > 0) {    /* skip over trailing unknown bytes */
+               gdb_is_valid((delta <= sizeof(buff)), prefix, "Waypoint structure V3");
+               gdb_fread(buff, delta);
+           }
        }
-       
-       xtime = 0;
-       if (gdb_fread_flag(1))
-       {
-           gdb_is_valid((delta == 5), prefix, "Waypoint time");
-           gdb_fread_le(&xtime, sizeof(xtime), 32, prefix, "time");
+       else { /* gdb_ver <= 2 */
+       
+           /* Here comes 1 .. 6 unknown bytes
+              !!! 6 only if class > 0 !!!
+              the field seems to be a time stamp */
+              
+           if ((delta & 1) == 0) {
+               delta--;
+               gdb_fread(buff, 1);
+               if (buff[0] != '\0')
+                   warning(MYNAME ": Invalid byte (0x%02x) at EOW'.\n", (unsigned char)buff[0]);
+           }
+           
+           xtime = 0;
+
+           delta--;
+           if (gdb_fread_flag(1)) {
+               gdb_is_valid((delta == 4), prefix, "Waypoint time");
+               gdb_fread_le(&xtime, sizeof(xtime), 32, prefix, "time");
+           }
+           else if (delta > 0) {
+               gdb_is_valid((delta <= sizeof(buff)), prefix, "Waypoint structure");
+               gdb_fread(buff, delta);
+               if (xclass < gt_waypt_class_map_point) {
+                   warning(MYNAME ": Unhandled EOW. Please report!\n");
+                   fatal(MYNAME ": [class is 0x%02xh, %d bytes left, gdb version %d]\n",
+                       xclass, (int)delta, gdb_ver);
+               }
+           }
        }
-           else
-               gdb_is_valid(delta==1, prefix, "No waypoint time");
        
        *wptclass = xclass;
        
@@ -643,6 +700,8 @@ gdb_read_route(void)
 #ifdef GDB_DEBUG
                gdb_print_buff(buff, 8, "Unknown bytes within rte_reed_loop");
 #endif
+               if (gdb_ver >= 3)
+                   gdb_fread(buff, 8);                                         /* a second block of unknown bytes */
            }
 
            /* The next thing is the unknown 0x03 0x00 .. 0x00 (18 bytes) */
@@ -658,13 +717,31 @@ gdb_read_route(void)
                gdb_fread(buff, 1);
                gdb_is_valid((buff[0] == 1), prefix3, "last seq.(1)");
                
-               if (gdb_ver > 1)
+               if (gdb_ver >= 2)
                    gdb_fread(buff, 8);                                 /* Unknown 8 bytes since gdb v2 */
 
                gdb_fread_str(xname, sizeof(xname));
-               if (buff[0] != 0)
+               if (xname[0] != 0)
                        route->rte_url = xstrdup(xname);
                
+               if (gdb_ver >= 3) {
+
+                   int url_ct, unkn;
+                   
+                   gdb_fread(buff, 1);                                 /* Unknown byte since gdb v3 */
+                   gdb_fread_le(&url_ct, sizeof(url_ct), 32, prefix3, "number of urls (since v3)");
+                   while (url_ct > 0) {
+                       url_ct--;
+                       gdb_fread_str(xname, sizeof(xname));
+                       if (route->rte_url == NULL)
+                           route->rte_url = xstrdup(xname);
+                   }
+                   gdb_fread_le(&unkn, sizeof(unkn), 32, prefix3, "unknown dword (since v3)");
+                   gdb_fread(buff, 1);                                 /* Unknown byte since gdb v3 */
+                   gdb_fread_str(xname, sizeof(xname));                /* multi-line notes */
+                   if (xname[0] != '\0')
+                       route->rte_desc = xstrdup(xname);
+               }
                wpt = gdb_create_rte_wpt(xwptname, xlat, xlon, xalt);
                if (wpt != NULL)
                    route_add_wpt(route, wpt);
@@ -744,8 +821,10 @@ gdb_read_route(void)
            if (gdb_fread_flag(1))                              /* link min alt validity + alt */
                gdb_fread(buff, 2 * sizeof(int));                               
                
-           if (gdb_ver > 1)
+           if (gdb_ver >= 2)
                gdb_fread(buff, 8);                             /* unknown 8 bytes since gdb v2 */
+               if (gdb_ver >= 3)
+                   gdb_fread(buff, 2);                         /* unknown 8 bytes since gdb v3 */
        }
        
        /* This should normally never happen; end of route is handled in main loop before this */
@@ -813,7 +892,7 @@ gdb_read_track(const size_t max_file_pos)
            wpt->latitude = GPS_Math_Semi_To_Deg(xlat);
            wpt->longitude = GPS_Math_Semi_To_Deg(xlon);
            wpt->creation_time = xtime;
-           wpt->centiseconds = 0;
+           wpt->microseconds = 0;
            wpt->altitude = xalt;
            wpt->depth = xdepth;
            
@@ -822,9 +901,21 @@ gdb_read_track(const size_t max_file_pos)
            track_add_wpt(track, wpt);
        }
        
-       gdb_fread_str(xname, sizeof(xname));
-       if (xname[0] != '\0')
+       if (gdb_ver >= 3) {
+           int url_ct;
+           
+           gdb_fread_le(&url_ct, sizeof(url_ct), 32, prefix, "number of urls (since v3)");
+           while (url_ct > 0) {
+               url_ct--;
+               gdb_fread_str(xname, sizeof(xname));
+               if ((track->rte_url == NULL) && (xname[0] != '\0'))
+                   track->rte_url = xstrdup(xname);
+           }
+       } else {
+           gdb_fread_str(xname, sizeof(xname));
+           if (xname[0] != '\0')
                track->rte_url = xstrdup(xname);
+       }
        
        return track;
 }
@@ -882,7 +973,7 @@ gdb_read_data(void)
                    if ((warnings & 1) == 0)
                    {
                        warnings |= 1;
-                       warning(MYNAME "-%s: At least one incomplete waypoint read (%d byte(s) left).\n", prefix, delta);
+                       warning(MYNAME "-%s: At least one incomplete waypoint (gdb v%d, %d byte(s) left).\n", prefix, gdb_ver, delta);
                    }
                    fseek(fin, curpos + reclen, SEEK_SET);
                }
@@ -926,7 +1017,7 @@ gdb_read_data(void)
                    if ((delta != reclen) && ((warnings & flag) == 0))
                    {
                        warnings |= flag;
-                       warning(MYNAME "-%s: At least one incomplete %s (gdb v%d.0, %d byte(s) left).\n", 
+                       warning(MYNAME "-%s: At least one incomplete %s (gdb v%d, %d byte(s) left).\n", 
                            prefix, (typ == 'R') ? "route" : "track", gdb_ver, delta);
                    }
                    fseek(fin, curpos + reclen, SEEK_SET);
@@ -941,7 +1032,7 @@ gdb_read_data(void)
                    case 'D': break;
                    case 'L': break;
                    case 'W': break;
-                   default: warning(MYNAME "-%s: Found unknown record type \"%c\"!\n", prefix, typ);
+                   default: warning(MYNAME "-%s: Found unknown record type \"%c\" (gdb v%d)!\n", prefix, typ, gdb_ver);
                }
                fseek(fin, curpos + reclen, SEEK_SET);
            }
@@ -1244,7 +1335,7 @@ gdb_write_waypt(const waypoint *wpt, const int hidden)
 
        gdb_fwrite_alt(GMSD_GET(temperature, 0), 0);    /* temperature */
        
-       if (wpt->creation_time != 0)                    /* creation time */
+       if (wpt->creation_time > 0)                     /* creation time */
        {
            gdb_fwrite(&c1, 1);
            gdb_fwrite_int(wpt->creation_time);
@@ -1449,7 +1540,7 @@ gdb_write_route(const route_head *route, const waypoint **list, const int count)
                gdb_fwrite_int(GPS_Math_Deg_To_Semi(minlon));
                gdb_fwrite_alt(minalt, -unknown_alt);
 
-               if (gdb_ver > 1)
+               if (gdb_ver >= 2)
                    gdb_fwrite(ffbuff, 8);
            }
            
@@ -1475,7 +1566,7 @@ gdb_write_route(const route_head *route, const waypoint **list, const int count)
        gdb_fwrite_int(0);              /* Zero interlink steps */
        gdb_fwrite(&c1, 1);
 
-       if (gdb_ver > 1)
+       if (gdb_ver >= 2)
            gdb_fwrite(ffbuff, 8);
            
        gdb_fwrite_str(route->rte_url, -1);
@@ -1548,7 +1639,7 @@ gdb_write_track(const route_head *track)
            gdb_fwrite_alt(wpt->altitude, unknown_alt); /* altitude */
            
 
-           if (wpt->creation_time != 0)                        /* creation time */
+           if (wpt->creation_time > 0)                 /* creation time */
            {
                gdb_fwrite(&c1, 1);
                gdb_fwrite_int(wpt->creation_time);
@@ -1671,6 +1762,9 @@ gdb_rd_init(const char *fname)
        
        fin_name = xstrdup(fname);
        fin = xfopen(fname, "rb", MYNAME);
+       gdb_read_file_header();
+       
+       if (gdb_ver >= 3) cet_convert_init(CET_CHARSET_UTF8, 1);
 }
 
 static void
@@ -1704,7 +1798,6 @@ gdb_wr_deinit(void)
 static void 
 gdb_read(void)
 {
-       gdb_read_file_header();
        gdb_read_data();
 }
 
@@ -1728,7 +1821,8 @@ ff_vecs_t gdb_vecs = {
        gdb_write,
        NULL, 
        gdb_args,
-       CET_CHARSET_MS_ANSI, 1                          /* CET-REVIEW */
+       CET_CHARSET_MS_ANSI, 0  /* O.K.: changed to NON-FIXED */
+                               /* because of utf8 strings since GDB V3 */
 };
 
 /*******************************************************************************/
diff --git a/geo.c b/geo.c
index 96f9d8d7b8ddb97afb243876b93568ee7f6b1522..9dbd84c9be20c7ecc871fe5475ed629430864aa2 100644 (file)
--- a/geo.c
+++ b/geo.c
@@ -24,7 +24,7 @@ static char *nuke_placer;
 
 static waypoint *wpt_tmp;
 
-static FILE *ofd;
+static gbfile *ofd;
 
 static
 arglist_t geo_args[] = {
@@ -68,8 +68,14 @@ xg_tag_mapping loc_map[] = {
 
 void wpt_s(const char *args, const char **unused) 
 { 
-//     wpt_tmp = waypt_new();
-       wpt_tmp = xcalloc(sizeof(*wpt_tmp), 1);
+       wpt_tmp = waypt_new();
+       /*
+        * 'geo' doesn't really have an 'unknown' and doesn't have any
+        * concept of alt.  Unfortunately, we have many reference files
+        * that have leaked the 'unknown_alt' value into them, so we paper
+        * over that here.
+        */
+       wpt_tmp->altitude = 0;
 }
 
 void wpt_e(const char *args, const char **unused)
@@ -164,13 +170,13 @@ geo_rd_deinit(void)
 static void
 geo_wr_init(const char *fname)
 {
-       ofd = xfopen(fname, "w", MYNAME);
+       ofd = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 geo_wr_deinit(void)
 {
-       fclose(ofd);
+       gbfclose(ofd);
 }
 
 static void
@@ -178,34 +184,34 @@ geo_waypt_pr(const waypoint *waypointp)
 {
        char *tmp;
 
-       fprintf(ofd, "<waypoint>\n");
-       fprintf(ofd, "<name id=\"%s\">", waypointp->shortname);
-       fprintf(ofd, "<![CDATA[%s]]>", waypointp->description);
-       fprintf(ofd, "</name>\n");
+       gbfprintf(ofd, "<waypoint>\n");
+       gbfprintf(ofd, "<name id=\"%s\">", waypointp->shortname);
+       gbfprintf(ofd, "<![CDATA[%s]]>", waypointp->description);
+       gbfprintf(ofd, "</name>\n");
 
-       fprintf(ofd, "<coord lat=\"%lf\" lon=\"%lf\"/>",
+       gbfprintf(ofd, "<coord lat=\"%lf\" lon=\"%lf\"/>",
                waypointp->latitude,
                waypointp->longitude);
-       fprintf(ofd, "\n");
+       gbfprintf(ofd, "\n");
 
        if (waypointp->icon_descr) {
-               fprintf(ofd, "<type>%s</type>\n", deficon ? deficon : waypointp->icon_descr);
+               gbfprintf(ofd, "<type>%s</type>\n", deficon ? deficon : waypointp->icon_descr);
        }
        if (waypointp->url) {
                tmp = xml_entitize(waypointp->url);
-               fprintf(ofd, "<link text =\"Cache Details\">%s</link>\n", 
+               gbfprintf(ofd, "<link text =\"Cache Details\">%s</link>\n", 
                        tmp);
                xfree(tmp);
        }
-       fprintf(ofd, "</waypoint>\n");
+       gbfprintf(ofd, "</waypoint>\n");
 }
 
 static void
 geo_write(void)
 {
-       fprintf(ofd, "<?xml version=\"1.0\"?><loc version=\"1.0\" src=\"EasyGPS\">\n");
+       gbfprintf(ofd, "<?xml version=\"1.0\"?><loc version=\"1.0\" src=\"EasyGPS\">\n");
        waypt_disp_all(geo_waypt_pr);
-       fprintf(ofd, "</loc>\n");
+       gbfprintf(ofd, "</loc>\n");
 }
 
 ff_vecs_t geo_vecs = {
index 72e343d3a66760802a0b2a94696d2f4527eca91c..f51201caa502ed48139d6acbde4b374380e2df30 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -21,6 +21,7 @@
 
 
 #include "defs.h"
+#include "gbversion.h"
 
 global_options global_opts;
 const char gpsbabel_version[] = VERSION;
index 711d1225b4692b23df983938842844aaa1e9ff10..8a8d738c2fcbe2e73b45367d2ccd265cf06cb9be 100644 (file)
@@ -1,7 +1,7 @@
 /*
     Access Garmin Logbook (Forerunner/Foretracker) data files.
 
-    Copyright (C) 2004 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2004, 2005, 2006, 2007  Robert Lipe, robertlipe@gpsbabel.org
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 #include "defs.h"
 #include "xmlgeneric.h"
 
-static FILE *ofd;
+static gbfile *ofd;
 static waypoint *wpt_tmp;
 static route_head *trk_head;
 
@@ -75,52 +75,52 @@ glogbook_rd_deinit(void)
 static void
 glogbook_wr_init(const char *fname)
 {
-        ofd = xfopen(fname, "w", MYNAME);
+        ofd = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 glogbook_wr_deinit(void)
 {
-        fclose(ofd);
+        gbfclose(ofd);
 }
 
 static void
 glogbook_waypt_pr(const waypoint *wpt)
 {      
-       fprintf(ofd, "            <Trackpoint>\n");
-       fprintf(ofd, "                <Position>\n");
-       fprintf(ofd, "                    <Latitude>%.5f</Latitude>\n", wpt->latitude);
-       fprintf(ofd, "                    <Longitude>%.5f</Longitude>\n", wpt->longitude);
+       gbfprintf(ofd, "            <Trackpoint>\n");
+       gbfprintf(ofd, "                <Position>\n");
+       gbfprintf(ofd, "                    <Latitude>%.5f</Latitude>\n", wpt->latitude);
+       gbfprintf(ofd, "                    <Longitude>%.5f</Longitude>\n", wpt->longitude);
        if (wpt->altitude != unknown_alt) {
-               fprintf(ofd, "                    <Altitude>%.3f</Altitude>\n", wpt->altitude);
+               gbfprintf(ofd, "                    <Altitude>%.3f</Altitude>\n", wpt->altitude);
        }
-       fprintf(ofd, "                </Position>\n");
-       fprintf(ofd, "                ");
-       xml_write_time(ofd, wpt->creation_time, "Time");
-       fprintf(ofd, "            </Trackpoint>\n");
+       gbfprintf(ofd, "                </Position>\n");
+       gbfprintf(ofd, "                ");
+       xml_write_time(ofd, wpt->creation_time, wpt->microseconds, "Time");
+       gbfprintf(ofd, "            </Trackpoint>\n");
 }
 
 static void
 glogbook_hdr( const route_head *rte)
 {
-       fprintf(ofd, "        <Track>\n");
+       gbfprintf(ofd, "        <Track>\n");
 }
 
 static void
 glogbook_ftr(const route_head *rte)
 {
-       fprintf(ofd, "        </Track>\n");
+       gbfprintf(ofd, "        </Track>\n");
 }
 
 static void
 glogbook_write(void)
 {
-       fprintf(ofd, "<?xml version=\"1.0\" ?>\n");
-       fprintf(ofd, "<History xmlns=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook http://www.garmin.com/xmlschemas/ForerunnerLogbookv1.xsd\" version=\"1\">\n");
-       fprintf(ofd, "    <Run>\n");
+       gbfprintf(ofd, "<?xml version=\"1.0\" ?>\n");
+       gbfprintf(ofd, "<History xmlns=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook http://www.garmin.com/xmlschemas/ForerunnerLogbookv1.xsd\" version=\"1\">\n");
+       gbfprintf(ofd, "    <Run>\n");
        track_disp_all(glogbook_hdr, glogbook_ftr, glogbook_waypt_pr);
-       fprintf(ofd, "    </Run>\n");
-       fprintf(ofd, "</History>\n");
+       gbfprintf(ofd, "    </Run>\n");
+       gbfprintf(ofd, "</History>\n");
 }
 
 void   gl_trk_s(const char *args, const char **unused)
@@ -147,7 +147,7 @@ void        gl_trk_pnt_e(const char *args, const char **unused)
 
 void   gl_trk_utc(const char *args, const char **unused)
 {
-       wpt_tmp->creation_time = xml_parse_time(args);
+       wpt_tmp->creation_time = xml_parse_time(args, &wpt_tmp->microseconds);
 }
 
 void   gl_trk_lat(const char *args, const char **unused)
index 6ff6a8f595fba0a837a2e7fe0020f5cad70e7a2e..3c126ff621409c3439ac41bf1643d0ce075b435b 100644 (file)
--- a/google.c
+++ b/google.c
@@ -345,6 +345,20 @@ google_read(void)
                  }
                }
                xfree( script );
+               script = NULL;
+       }
+
+       /*
+        * 'Tis better to leak than crash when we are merging and 
+        * don't see an 'end' in the first file.  This feels a bit
+        * like plastering over a deeper problem...
+        *
+        */
+       if ( encoded_points ) {
+               encoded_points = NULL;
+       }
+       if ( encoded_levels ) {
+               encoded_levels = NULL;
        }
 }
 #endif
index af188eba0433eb5ed4eb60d2eb9d665dd977f0d3..83807aef473d1d914aeeea1c0f21ce38126336a0 100644 (file)
@@ -1,23 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GPSBabel Documentation</title><link rel="stylesheet" href="http://www.gpsbabel.org/style3.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.69.1" /></head><body><div class="book" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="GPSBabel_Documentation_Book"></a>GPSBabel Documentation</h1></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#Introduction">Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="#The_Problem">The Problem</a></span></dt><dt><span class="section"><a href="#The_Solution">The Solution</a></span></dt></dl></dd><dt><span class="chapter"><a href="#Getting_and_Building">1. Getting it and Building it</a></span></dt><dt><span class="chapter"><a href="#Usage">2. Usage</a></span></dt><dd><dl><dt><span class="sect1"><a href="#Invocation">Invocation</a></span></dt><dt><span class="sect1"><a href="#Advanced_Usage">Advanced Usage</a></span></dt><dt><span class="sect1"><a href="#Route_And_Track_Modes">Route and Track Modes</a></span></dt><dt><span class="sect1"><a href="#inifile">Working with predefined options</a></span></dt><dt><span class="sect1"><a href="#tracking">Realtime tracking</a></span></dt><dt><span class="sect1"><a href="#batchfile">Batch mode (command files)</a></span></dt></dl></dd><dt><span class="chapter"><a href="#The_Formats">3. The Formats</a></span></dt><dd><dl><dt><span class="section"><a href="#fmt_xcsv">? Character Separated Values (xcsv)</a></span></dt><dt><span class="section"><a href="#fmt_tabsep">All database fields on one tab-separated line (tabsep)</a></span></dt><dt><span class="section"><a href="#fmt_baroiq">Brauniger IQ Series Barograph Download (baroiq)</a></span></dt><dt><span class="section"><a href="#fmt_cambridge">Cambridge/Winpilot glider software (cambridge)</a></span></dt><dt><span class="section"><a href="#fmt_cst">CarteSurTable data file (cst)</a></span></dt><dt><span class="section"><a href="#fmt_cetus">Cetus for Palm/OS (cetus)</a></span></dt><dt><span class="section"><a href="#fmt_coastexp">CoastalExplorer XML (coastexp)</a></span></dt><dt><span class="section"><a href="#fmt_csv">Comma separated values (csv)</a></span></dt><dt><span class="section"><a href="#fmt_compegps">CompeGPS data files (.wpt/.trk/.rte) (compegps)</a></span></dt><dt><span class="section"><a href="#fmt_copilot">CoPilot Flight Planner for Palm/OS (copilot)</a></span></dt><dt><span class="section"><a href="#fmt_coto">cotoGPS for Palm/OS (coto)</a></span></dt><dt><span class="section"><a href="#fmt_custom">Custom "Everything" Style (custom)</a></span></dt><dt><span class="section"><a href="#fmt_axim_gpb">Dell Axim Navigation System (.gpb) file format (axim_gpb)</a></span></dt><dt><span class="section"><a href="#fmt_an1">DeLorme .an1 (drawing) file (an1)</a></span></dt><dt><span class="section"><a href="#fmt_gpl">DeLorme GPL (gpl)</a></span></dt><dt><span class="section"><a href="#fmt_saplus">DeLorme Street Atlas Plus (saplus)</a></span></dt><dt><span class="section"><a href="#fmt_saroute">DeLorme Street Atlas Route (saroute)</a></span></dt><dt><span class="section"><a href="#fmt_xmap">DeLorme XMap HH Native .WPT (xmap)</a></span></dt><dt><span class="section"><a href="#fmt_xmap2006">DeLorme XMap/SAHH 2006 Native .TXT (xmap2006)</a></span></dt><dt><span class="section"><a href="#fmt_xmapwpt">DeLorme XMat HH Street Atlas USA .WPT (PPC) (xmapwpt)</a></span></dt><dt><span class="section"><a href="#fmt_easygps">EasyGPS binary format (easygps)</a></span></dt><dt><span class="section"><a href="#fmt_igc">FAI/IGC Flight Recorder Data Format (igc)</a></span></dt><dt><span class="section"><a href="#fmt_gpssim">Franson GPSGate Simulation (gpssim)</a></span></dt><dt><span class="section"><a href="#fmt_fugawi">Fugawi (fugawi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin301">Garmin 301 Custom position and heartrate (garmin301)</a></span></dt><dt><span class="section"><a href="#fmt_glogbook">Garmin Logbook XML (glogbook)</a></span></dt><dt><span class="section"><a href="#fmt_gdb">Garmin MapSource - gdb (gdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapsource">Garmin MapSource - mps (mapsource)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_txt">Garmin MapSource - txt (tab delimited) (garmin_txt)</a></span></dt><dt><span class="section"><a href="#fmt_pcx">Garmin PCX5 (pcx)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_poi">Garmin POI database (garmin_poi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin">Garmin serial/USB protocol (garmin)</a></span></dt><dt><span class="section"><a href="#fmt_gtrnctr">Garmin Training Centerxml (gtrnctr)</a></span></dt><dt><span class="section"><a href="#fmt_geo">Geocaching.com .loc (geo)</a></span></dt><dt><span class="section"><a href="#fmt_gcdb">GeocachingDB for Palm/OS (gcdb)</a></span></dt><dt><span class="section"><a href="#fmt_geonet">GEOnet Names Server (GNS) (geonet)</a></span></dt><dt><span class="section"><a href="#fmt_geoniche">GeoNiche .pdb (geoniche)</a></span></dt><dt><span class="section"><a href="#fmt_kml">Google Earth (Keyhole) Markup Language (kml)</a></span></dt><dt><span class="section"><a href="#fmt_google">Google Maps XML (google)</a></span></dt><dt><span class="section"><a href="#fmt_gpilots">GpilotS (gpilots)</a></span></dt><dt><span class="section"><a href="#fmt_gtm">GPS TrackMaker (gtm)</a></span></dt><dt><span class="section"><a href="#fmt_arc">GPSBabel arc filter file (arc)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrive">GpsDrive Format (gpsdrive)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrivetrack">GpsDrive Format for Tracks (gpsdrivetrack)</a></span></dt><dt><span class="section"><a href="#fmt_gpsman">GPSman (gpsman)</a></span></dt><dt><span class="section"><a href="#fmt_gpspilot">GPSPilot Tracker for Palm/OS (gpspilot)</a></span></dt><dt><span class="section"><a href="#fmt_gpsutil">gpsutil (gpsutil)</a></span></dt><dt><span class="section"><a href="#fmt_gpx">GPX XML (gpx)</a></span></dt><dt><span class="section"><a href="#fmt_hiketech">HikeTech (hiketech)</a></span></dt><dt><span class="section"><a href="#fmt_holux">Holux (gm-100) .wpo Format (holux)</a></span></dt><dt><span class="section"><a href="#fmt_hsandv">HSA Endeavour Navigator export File (hsandv)</a></span></dt><dt><span class="section"><a href="#fmt_html">HTML Output (html)</a></span></dt><dt><span class="section"><a href="#fmt_ignrando">IGN Rando track files (ignrando)</a></span></dt><dt><span class="section"><a href="#fmt_ktf2">Kartex 5 Track File (ktf2)</a></span></dt><dt><span class="section"><a href="#fmt_kwf2">Kartex 5 Waypoint File (kwf2)</a></span></dt><dt><span class="section"><a href="#fmt_psitrex">KuDaTa PsiTrex text (psitrex)</a></span></dt><dt><span class="section"><a href="#fmt_lowranceusr">Lowrance USR (lowranceusr)</a></span></dt><dt><span class="section"><a href="#fmt_maggeo">Magellan Explorist Geocaching (maggeo)</a></span></dt><dt><span class="section"><a href="#fmt_mapsend">Magellan Mapsend (mapsend)</a></span></dt><dt><span class="section"><a href="#fmt_magnav">Magellan NAV Companion for Palm/OS (magnav)</a></span></dt><dt><span class="section"><a href="#fmt_magellanx">Magellan SD files (as for eXplorist) (magellanx)</a></span></dt><dt><span class="section"><a href="#fmt_magellan">Magellan SD files (as for Meridian) (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_magellan1">Magellan serial protocol (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_tef">Map&amp;Guide 'TourExchangeFormat' XML (tef)</a></span></dt><dt><span class="section"><a href="#fmt_mag_pdb">Map&amp;Guide to Palm/OS exported files (.pdb) (mag_pdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapconverter">Mapopolis.com Mapconverter CSV (mapconverter)</a></span></dt><dt><span class="section"><a href="#fmt_mxf">MapTech Exchange Format (mxf)</a></span></dt><dt><span class="section"><a href="#fmt_msroute">Microsoft AutoRoute 2002 (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_msroute1">Microsoft Streets and Trips (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_s_and_t">Microsoft Streets and Trips 2002-2006 (s_and_t)</a></span></dt><dt><span class="section"><a href="#fmt_bcr">Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)</a></span></dt><dt><span class="section"><a href="#fmt_psp">MS PocketStreets 2002 Pushpin (psp)</a></span></dt><dt><span class="section"><a href="#fmt_tpg">National Geographic Topo .tpg (waypoints) (tpg)</a></span></dt><dt><span class="section"><a href="#fmt_tpo2">National Geographic Topo 2.x .tpo (tpo2)</a></span></dt><dt><span class="section"><a href="#fmt_tpo3">National Geographic Topo 3.x/4.x .tpo (tpo3)</a></span></dt><dt><span class="section"><a href="#fmt_navicache">Navicache.com XML (navicache)</a></span></dt><dt><span class="section"><a href="#fmt_nmn4">Navigon Mobile Navigator .rte files (nmn4)</a></span></dt><dt><span class="section"><a href="#fmt_dna">Navitrak DNA marker format (dna)</a></span></dt><dt><span class="section"><a href="#fmt_netstumbler">NetStumbler Summary File (text) (netstumbler)</a></span></dt><dt><span class="section"><a href="#fmt_nima">NIMA/GNIS Geographic Names File (nima)</a></span></dt><dt><span class="section"><a href="#fmt_nmea">NMEA 0183 sentences (nmea)</a></span></dt><dt><span class="section"><a href="#fmt_ozi">OziExplorer (ozi)</a></span></dt><dt><span class="section"><a href="#fmt_palmdoc">PalmDoc Output (palmdoc)</a></span></dt><dt><span class="section"><a href="#fmt_pathaway">PathAway Database for Palm/OS (pathaway)</a></span></dt><dt><span class="section"><a href="#fmt_quovadis">Quovadis (quovadis)</a></span></dt><dt><span class="section"><a href="#fmt_cup">See You flight analysis data (cup)</a></span></dt><dt><span class="section"><a href="#fmt_sportsim">Sportsim track files (part of zipped .ssz files) (sportsim)</a></span></dt><dt><span class="section"><a href="#fmt_stmsdf">Suunto Trek Manager (STM) .sdf files (stmsdf)</a></span></dt><dt><span class="section"><a href="#fmt_stmwpp">Suunto Trek Manager (STM) WaypointPlus files (stmwpp)</a></span></dt><dt><span class="section"><a href="#fmt_openoffice">Tab delimited fields useful for OpenOffice, Ploticus etc. (openoffice)</a></span></dt><dt><span class="section"><a href="#fmt_text">Textual Output (text)</a></span></dt><dt><span class="section"><a href="#fmt_tomtom">TomTom POI file (tomtom)</a></span></dt><dt><span class="section"><a href="#fmt_tmpro">TopoMapPro Places File (tmpro)</a></span></dt><dt><span class="section"><a href="#fmt_dmtlog">TrackLogs digital mapping (.trl) (dmtlog)</a></span></dt><dt><span class="section"><a href="#fmt_tiger">U.S. Census Bureau Tiger Mapping Service (tiger)</a></span></dt><dt><span class="section"><a href="#fmt_unicsv">Universal csv with field structure in first line (unicsv)</a></span></dt><dt><span class="section"><a href="#fmt_vcard">Vcard Output (for iPod) (vcard)</a></span></dt><dt><span class="section"><a href="#fmt_vitosmt">Vito Navigator II tracks (vitosmt)</a></span></dt><dt><span class="section"><a href="#fmt_wfff">WiFiFoFum 2.0 for PocketPC XML (wfff)</a></span></dt><dt><span class="section"><a href="#fmt_wbt-bin">Wintec WBT-100/200 Binary file format (wbt-bin)</a></span></dt><dt><span class="section"><a href="#fmt_wbt">Wintec WBT-100/200 GPS Download (wbt)</a></span></dt><dt><span class="section"><a href="#fmt_yahoo">Yahoo Geocode API data (yahoo)</a></span></dt></dl></dd><dt><span class="chapter"><a href="#Data_Filters">4. Data Filters</a></span></dt><dd><dl><dt><span class="section"><a href="#filter_polygon">Include Only Points Inside Polygon (polygon)</a></span></dt><dt><span class="section"><a href="#filter_arc">Include Only Points Within Distance of Arc (arc)</a></span></dt><dt><span class="section"><a href="#filter_radius">Include Only Points Within Radius (radius)</a></span></dt><dt><span class="section"><a href="#filter_interpolate">Interpolate between trackpoints (interpolate)</a></span></dt><dt><span class="section"><a href="#filter_track">Manipulate track lists (track)</a></span></dt><dt><span class="section"><a href="#filter_sort">Rearrange waypoints by resorting (sort)</a></span></dt><dt><span class="section"><a href="#filter_nuketypes">Remove all waypoints, tracks, or routes (nuketypes)</a></span></dt><dt><span class="section"><a href="#filter_duplicate">Remove Duplicates (duplicate)</a></span></dt><dt><span class="section"><a href="#filter_position">Remove Points Within Distance (position)</a></span></dt><dt><span class="section"><a href="#filter_discard">Remove unreliable points with high hdop or vdop (discard)</a></span></dt><dt><span class="section"><a href="#filter_reverse">Reverse stops within routes (reverse)</a></span></dt><dt><span class="section"><a href="#filter_stack">Save and restore waypoint lists (stack)</a></span></dt><dt><span class="section"><a href="#filter_simplify">Simplify routes (simplify)</a></span></dt><dt><span class="section"><a href="#filter_transform">Transformate waypoints into a route, tracks into routes, ... (transform)</a></span></dt></dl></dd><dt><span class="appendix"><a href="#Datums">A. Supported Datums</a></span></dt><dt><span class="appendix"><a href="#GarminIcons">B. Garmin Icons</a></span></dt><dt><span class="appendix"><a href="#Styles">C. GPSBabel XCSV Style Files</a></span></dt><dd><dl><dt><span class="section"><a href="#styles_intro">Introduction</a></span></dt><dt><span class="section"><a href="#style_intro2">Style file overview</a></span></dt><dt><span class="section"><a href="#styles_internal_const">Internal Constants</a></span></dt><dt><span class="section"><a href="#style_global">Global Properties of the File</a></span></dt><dt><span class="section"><a href="#style_behavior">GPSBabel Behavior Directives</a></span></dt><dt><span class="section"><a href="#style_layout">Defining the Layout of the File</a></span></dt><dt><span class="section"><a href="#style_define">Defining Fields Within the File</a></span></dt><dt><span class="section"><a href="#style_examples">Examples</a></span></dt><dt><span class="section"><a href="#style_notes">Miscellaneous Notes</a></span></dt></dl></dd></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>3.1. <a href="#all_garmin_txt_options">Command showing garmin_txt output with all options</a></dt><dt>3.2. <a href="#sample_bcr_command">Sample BCR command with all options</a></dt><dt>3.3. <a href="#wbt-bin-on-macos">Command showing conversion of a Wintec binary file to GPX</a></dt><dt>3.4. <a href="#wbt-on-macos">Command showing WBT-200 download and erase over Bluetooth on Mac OS X</a></dt><dt>4.1. <a href="#example_polygon_filter">Using the polygon filter</a></dt><dt>4.2. <a href="#example_in_or_close_to">Using the polygon and arc filters to find points in or nearly in a 
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GPSBabel Documentation</title><link rel="stylesheet" href="http://www.gpsbabel.org/style3.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.1" /></head><body><div class="book" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="GPSBabel_Documentation_Book"></a>GPSBabel Documentation</h1></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#Introduction">Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="#The_Problem">The Problem: Too many incompatible formats</a></span></dt><dt><span class="section"><a href="#The_Solution">The Solution</a></span></dt></dl></dd><dt><span class="chapter"><a href="#Getting_and_Building">1. Getting it and Building it</a></span></dt><dt><span class="chapter"><a href="#Usage">2. Usage</a></span></dt><dd><dl><dt><span class="sect1"><a href="#Invocation">Invocation</a></span></dt><dt><span class="sect1"><a href="#Suboptions">Suboptions</a></span></dt><dt><span class="sect1"><a href="#Advanced_Usage">Advanced Usage</a></span></dt><dt><span class="sect1"><a href="#Route_And_Track_Modes">Route and Track Modes</a></span></dt><dt><span class="sect1"><a href="#inifile">Working with predefined options</a></span></dt><dt><span class="sect1"><a href="#tracking">Realtime tracking</a></span></dt><dt><span class="sect1"><a href="#batchfile">Batch mode (command files)</a></span></dt></dl></dd><dt><span class="chapter"><a href="#The_Formats">3. The Formats</a></span></dt><dd><dl><dt><span class="section"><a href="#fmt_xcsv">? Character Separated Values (xcsv)</a></span></dt><dt><span class="section"><a href="#fmt_alantrl">Alan Map500 tracklogs (.trl) (alantrl)</a></span></dt><dt><span class="section"><a href="#fmt_alanwpr">Alan Map500 waypoints and routes (.wpr) (alanwpr)</a></span></dt><dt><span class="section"><a href="#fmt_tabsep">All database fields on one tab-separated line (tabsep)</a></span></dt><dt><span class="section"><a href="#fmt_baroiq">Brauniger IQ Series Barograph Download (baroiq)</a></span></dt><dt><span class="section"><a href="#fmt_cambridge">Cambridge/Winpilot glider software (cambridge)</a></span></dt><dt><span class="section"><a href="#fmt_cst">CarteSurTable data file (cst)</a></span></dt><dt><span class="section"><a href="#fmt_cetus">Cetus for Palm/OS (cetus)</a></span></dt><dt><span class="section"><a href="#fmt_coastexp">CoastalExplorer XML (coastexp)</a></span></dt><dt><span class="section"><a href="#fmt_csv">Comma separated values (csv)</a></span></dt><dt><span class="section"><a href="#fmt_compegps">CompeGPS data files (.wpt/.trk/.rte) (compegps)</a></span></dt><dt><span class="section"><a href="#fmt_copilot">CoPilot Flight Planner for Palm/OS (copilot)</a></span></dt><dt><span class="section"><a href="#fmt_coto">cotoGPS for Palm/OS (coto)</a></span></dt><dt><span class="section"><a href="#fmt_custom">Custom "Everything" Style (custom)</a></span></dt><dt><span class="section"><a href="#fmt_axim_gpb">Dell Axim Navigation System (.gpb) file format (axim_gpb)</a></span></dt><dt><span class="section"><a href="#fmt_an1">DeLorme .an1 (drawing) file (an1)</a></span></dt><dt><span class="section"><a href="#fmt_gpl">DeLorme GPL (gpl)</a></span></dt><dt><span class="section"><a href="#fmt_saplus">DeLorme Street Atlas Plus (saplus)</a></span></dt><dt><span class="section"><a href="#fmt_saroute">DeLorme Street Atlas Route (saroute)</a></span></dt><dt><span class="section"><a href="#fmt_xmap">DeLorme XMap HH Native .WPT (xmap)</a></span></dt><dt><span class="section"><a href="#fmt_xmap2006">DeLorme XMap/SAHH 2006 Native .TXT (xmap2006)</a></span></dt><dt><span class="section"><a href="#fmt_xmapwpt">DeLorme XMat HH Street Atlas USA .WPT (PPC) (xmapwpt)</a></span></dt><dt><span class="section"><a href="#fmt_easygps">EasyGPS binary format (easygps)</a></span></dt><dt><span class="section"><a href="#fmt_igc">FAI/IGC Flight Recorder Data Format (igc)</a></span></dt><dt><span class="section"><a href="#fmt_gpssim">Franson GPSGate Simulation (gpssim)</a></span></dt><dt><span class="section"><a href="#fmt_fugawi">Fugawi (fugawi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin301">Garmin 301 Custom position and heartrate (garmin301)</a></span></dt><dt><span class="section"><a href="#fmt_glogbook">Garmin Logbook XML (glogbook)</a></span></dt><dt><span class="section"><a href="#fmt_gdb">Garmin MapSource - gdb (gdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapsource">Garmin MapSource - mps (mapsource)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_txt">Garmin MapSource - txt (tab delimited) (garmin_txt)</a></span></dt><dt><span class="section"><a href="#fmt_pcx">Garmin PCX5 (pcx)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_poi">Garmin POI database (garmin_poi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin">Garmin serial/USB protocol (garmin)</a></span></dt><dt><span class="section"><a href="#fmt_gtrnctr">Garmin Training Centerxml (gtrnctr)</a></span></dt><dt><span class="section"><a href="#fmt_geo">Geocaching.com .loc (geo)</a></span></dt><dt><span class="section"><a href="#fmt_gcdb">GeocachingDB for Palm/OS (gcdb)</a></span></dt><dt><span class="section"><a href="#fmt_geonet">GEOnet Names Server (GNS) (geonet)</a></span></dt><dt><span class="section"><a href="#fmt_geoniche">GeoNiche .pdb (geoniche)</a></span></dt><dt><span class="section"><a href="#fmt_kml">Google Earth (Keyhole) Markup Language (kml)</a></span></dt><dt><span class="section"><a href="#fmt_google">Google Maps XML (google)</a></span></dt><dt><span class="section"><a href="#fmt_gpilots">GpilotS (gpilots)</a></span></dt><dt><span class="section"><a href="#fmt_gtm">GPS TrackMaker (gtm)</a></span></dt><dt><span class="section"><a href="#fmt_arc">GPSBabel arc filter file (arc)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrive">GpsDrive Format (gpsdrive)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrivetrack">GpsDrive Format for Tracks (gpsdrivetrack)</a></span></dt><dt><span class="section"><a href="#fmt_gpsman">GPSman (gpsman)</a></span></dt><dt><span class="section"><a href="#fmt_gpspilot">GPSPilot Tracker for Palm/OS (gpspilot)</a></span></dt><dt><span class="section"><a href="#fmt_gpsutil">gpsutil (gpsutil)</a></span></dt><dt><span class="section"><a href="#fmt_gpx">GPX XML (gpx)</a></span></dt><dt><span class="section"><a href="#fmt_hiketech">HikeTech (hiketech)</a></span></dt><dt><span class="section"><a href="#fmt_holux">Holux (gm-100) .wpo Format (holux)</a></span></dt><dt><span class="section"><a href="#fmt_hsandv">HSA Endeavour Navigator export File (hsandv)</a></span></dt><dt><span class="section"><a href="#fmt_html">HTML Output (html)</a></span></dt><dt><span class="section"><a href="#fmt_ignrando">IGN Rando track files (ignrando)</a></span></dt><dt><span class="section"><a href="#fmt_ktf2">Kartex 5 Track File (ktf2)</a></span></dt><dt><span class="section"><a href="#fmt_kwf2">Kartex 5 Waypoint File (kwf2)</a></span></dt><dt><span class="section"><a href="#fmt_kompass_tk">Kompass (DAV) Track (.tk) (kompass_tk)</a></span></dt><dt><span class="section"><a href="#fmt_kompass_wp">Kompass (DAV) Waypoints (.wp) (kompass_wp)</a></span></dt><dt><span class="section"><a href="#fmt_psitrex">KuDaTa PsiTrex text (psitrex)</a></span></dt><dt><span class="section"><a href="#fmt_lowranceusr">Lowrance USR (lowranceusr)</a></span></dt><dt><span class="section"><a href="#fmt_maggeo">Magellan Explorist Geocaching (maggeo)</a></span></dt><dt><span class="section"><a href="#fmt_mapsend">Magellan Mapsend (mapsend)</a></span></dt><dt><span class="section"><a href="#fmt_magnav">Magellan NAV Companion for Palm/OS (magnav)</a></span></dt><dt><span class="section"><a href="#fmt_magellanx">Magellan SD files (as for eXplorist) (magellanx)</a></span></dt><dt><span class="section"><a href="#fmt_magellan">Magellan SD files (as for Meridian) (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_magellan1">Magellan serial protocol (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_tef">Map&amp;Guide 'TourExchangeFormat' XML (tef)</a></span></dt><dt><span class="section"><a href="#fmt_mag_pdb">Map&amp;Guide to Palm/OS exported files (.pdb) (mag_pdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapconverter">Mapopolis.com Mapconverter CSV (mapconverter)</a></span></dt><dt><span class="section"><a href="#fmt_mxf">MapTech Exchange Format (mxf)</a></span></dt><dt><span class="section"><a href="#fmt_msroute">Microsoft AutoRoute 2002 (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_msroute1">Microsoft Streets and Trips (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_s_and_t">Microsoft Streets and Trips 2002-2006 (s_and_t)</a></span></dt><dt><span class="section"><a href="#fmt_bcr">Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)</a></span></dt><dt><span class="section"><a href="#fmt_psp">MS PocketStreets 2002 Pushpin (psp)</a></span></dt><dt><span class="section"><a href="#fmt_tpg">National Geographic Topo .tpg (waypoints) (tpg)</a></span></dt><dt><span class="section"><a href="#fmt_tpo2">National Geographic Topo 2.x .tpo (tpo2)</a></span></dt><dt><span class="section"><a href="#fmt_tpo3">National Geographic Topo 3.x/4.x .tpo (tpo3)</a></span></dt><dt><span class="section"><a href="#fmt_navicache">Navicache.com XML (navicache)</a></span></dt><dt><span class="section"><a href="#fmt_nmn4">Navigon Mobile Navigator .rte files (nmn4)</a></span></dt><dt><span class="section"><a href="#fmt_dna">Navitrak DNA marker format (dna)</a></span></dt><dt><span class="section"><a href="#fmt_netstumbler">NetStumbler Summary File (text) (netstumbler)</a></span></dt><dt><span class="section"><a href="#fmt_nima">NIMA/GNIS Geographic Names File (nima)</a></span></dt><dt><span class="section"><a href="#fmt_nmea">NMEA 0183 sentences (nmea)</a></span></dt><dt><span class="section"><a href="#fmt_ozi">OziExplorer (ozi)</a></span></dt><dt><span class="section"><a href="#fmt_palmdoc">PalmDoc Output (palmdoc)</a></span></dt><dt><span class="section"><a href="#fmt_pathaway">PathAway Database for Palm/OS (pathaway)</a></span></dt><dt><span class="section"><a href="#fmt_quovadis">Quovadis (quovadis)</a></span></dt><dt><span class="section"><a href="#fmt_raymarine">Raymarine Waypoint File (.rwf) (raymarine)</a></span></dt><dt><span class="section"><a href="#fmt_cup">See You flight analysis data (cup)</a></span></dt><dt><span class="section"><a href="#fmt_sportsim">Sportsim track files (part of zipped .ssz files) (sportsim)</a></span></dt><dt><span class="section"><a href="#fmt_stmsdf">Suunto Trek Manager (STM) .sdf files (stmsdf)</a></span></dt><dt><span class="section"><a href="#fmt_stmwpp">Suunto Trek Manager (STM) WaypointPlus files (stmwpp)</a></span></dt><dt><span class="section"><a href="#fmt_openoffice">Tab delimited fields useful for OpenOffice, Ploticus etc. (openoffice)</a></span></dt><dt><span class="section"><a href="#fmt_text">Textual Output (text)</a></span></dt><dt><span class="section"><a href="#fmt_tomtom">TomTom POI file (tomtom)</a></span></dt><dt><span class="section"><a href="#fmt_tmpro">TopoMapPro Places File (tmpro)</a></span></dt><dt><span class="section"><a href="#fmt_dmtlog">TrackLogs digital mapping (.trl) (dmtlog)</a></span></dt><dt><span class="section"><a href="#fmt_tiger">U.S. Census Bureau Tiger Mapping Service (tiger)</a></span></dt><dt><span class="section"><a href="#fmt_unicsv">Universal csv with field structure in first line (unicsv)</a></span></dt><dt><span class="section"><a href="#fmt_vcard">Vcard Output (for iPod) (vcard)</a></span></dt><dt><span class="section"><a href="#fmt_vitosmt">Vito Navigator II tracks (vitosmt)</a></span></dt><dt><span class="section"><a href="#fmt_wfff">WiFiFoFum 2.0 for PocketPC XML (wfff)</a></span></dt><dt><span class="section"><a href="#fmt_wbt-bin">Wintec WBT-100/200 Binary file format (wbt-bin)</a></span></dt><dt><span class="section"><a href="#fmt_wbt">Wintec WBT-100/200 GPS Download (wbt)</a></span></dt><dt><span class="section"><a href="#fmt_yahoo">Yahoo Geocode API data (yahoo)</a></span></dt></dl></dd><dt><span class="chapter"><a href="#Data_Filters">4. Data Filters</a></span></dt><dd><dl><dt><span class="section"><a href="#filter_polygon">Include Only Points Inside Polygon (polygon)</a></span></dt><dt><span class="section"><a href="#filter_arc">Include Only Points Within Distance of Arc (arc)</a></span></dt><dt><span class="section"><a href="#filter_radius">Include Only Points Within Radius (radius)</a></span></dt><dt><span class="section"><a href="#filter_interpolate">Interpolate between trackpoints (interpolate)</a></span></dt><dt><span class="section"><a href="#filter_track">Manipulate track lists (track)</a></span></dt><dt><span class="section"><a href="#filter_sort">Rearrange waypoints by resorting (sort)</a></span></dt><dt><span class="section"><a href="#filter_nuketypes">Remove all waypoints, tracks, or routes (nuketypes)</a></span></dt><dt><span class="section"><a href="#filter_duplicate">Remove Duplicates (duplicate)</a></span></dt><dt><span class="section"><a href="#filter_position">Remove Points Within Distance (position)</a></span></dt><dt><span class="section"><a href="#filter_discard">Remove unreliable points with high hdop or vdop (discard)</a></span></dt><dt><span class="section"><a href="#filter_reverse">Reverse stops within routes (reverse)</a></span></dt><dt><span class="section"><a href="#filter_stack">Save and restore waypoint lists (stack)</a></span></dt><dt><span class="section"><a href="#filter_simplify">Simplify routes (simplify)</a></span></dt><dt><span class="section"><a href="#filter_transform">Transform waypoints into a route, tracks into routes, ... (transform)</a></span></dt></dl></dd><dt><span class="appendix"><a href="#Datums">A. Supported Datums</a></span></dt><dt><span class="appendix"><a href="#GarminIcons">B. Garmin Icons</a></span></dt><dt><span class="appendix"><a href="#Styles">C. GPSBabel XCSV Style Files</a></span></dt><dd><dl><dt><span class="section"><a href="#styles_intro">Introduction</a></span></dt><dt><span class="section"><a href="#style_intro2">Style file overview</a></span></dt><dt><span class="section"><a href="#styles_internal_const">Internal Constants</a></span></dt><dt><span class="section"><a href="#style_global">Global Properties of the File</a></span></dt><dt><span class="section"><a href="#style_behavior">GPSBabel Behavior Directives</a></span></dt><dt><span class="section"><a href="#style_layout">Defining the Layout of the File</a></span></dt><dt><span class="section"><a href="#style_define">Defining Fields Within the File</a></span></dt><dt><span class="section"><a href="#style_examples">Examples</a></span></dt><dt><span class="section"><a href="#style_notes">Miscellaneous Notes</a></span></dt></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>3.1. <a href="#garmin_grid">Grid values for garmin_txt</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>3.1. <a href="#all_garmin_txt_options">Command showing garmin_txt output with all options</a></dt><dt>3.2. <a href="#sample_bcr_command">Sample BCR command with all options</a></dt><dt>3.3. <a href="#wbt-bin-on-macos">Command showing conversion of a Wintec binary file to GPX</a></dt><dt>3.4. <a href="#wbt-on-macos">Command showing WBT-200 download and erase over Bluetooth on Mac OS X</a></dt><dt>4.1. <a href="#example_polygon_filter">Using the polygon filter</a></dt><dt>4.2. <a href="#example_in_or_close_to">Using the polygon and arc filters to find points in or nearly in a 
 polygon</a></dt><dt>4.3. <a href="#example_arc_filter">Using the arc filter</a></dt><dt>4.4. <a href="#radius_to_find_points_close">Using the radius filter to find points close to a given point</a></dt><dt>4.5. <a href="#example_interpolate_filter">Using the interpolate filter</a></dt><dt>4.6. <a href="#ex_track_move">Time-shifting a track with the track filter</a></dt><dt>4.7. <a href="#ex_track_merge">Merging tracks with the track filter</a></dt><dt>4.8. <a href="#ex_track_startstop">Extracting a period of time with the track filter</a></dt><dt>4.9. <a href="#example_nuketypes_filter">Filtering data types with nuketypes</a></dt><dt>4.10. <a href="#duplicate_to_suppress_points">Using the duplicate filter to suppress points with the same 
          name and location</a></dt><dt>4.11. <a href="#duplicate_to_ignore">Using the duplicate filter to implement an "ignore list."</a></dt><dt>4.12. <a href="#Correcting_Cache_Locations">Using the duplicate filter to correct the locations of "puzzle"
-geocaches</a></dt><dt>4.13. <a href="#posn_to_suppress_close_points">Using the position filter to suppress close points</a></dt><dt>4.14. <a href="#example_discard_filter">Using the discard filter</a></dt></dl></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Introduction"></a>Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#The_Problem">The Problem</a></span></dt><dt><span class="section"><a href="#The_Solution">The Solution</a></span></dt></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="The_Problem"></a>The Problem</h2></div></div></div><p> There are simply too many gratuitously different file formats
+geocaches</a></dt><dt>4.13. <a href="#posn_to_suppress_close_points">Using the position filter to suppress close points</a></dt><dt>4.14. <a href="#example_discard_filter">Using the discard filter</a></dt><dt>4.15. <a href="#transform_to_wpt">Converting a track to a sequence of waypoints</a></dt><dt>4.16. <a href="#transform_to_rte">Converting a pile of waypoints to a GPX route</a></dt><dt>4.17. <a href="#transform_to_trk">Converting a pile of waypoints to a GPX track</a></dt><dt>4.18. <a href="#transform_del">Convert a GPX track to GPX waypoints, tossing the original track</a></dt></dl></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Introduction"></a>Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#The_Problem">The Problem: Too many incompatible formats</a></span></dt><dt><span class="section"><a href="#The_Solution">The Solution</a></span></dt></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="The_Problem"></a>The Problem: Too many incompatible formats</h2></div></div></div><p> There are simply too many gratuitously different file formats
 to hold waypoint, track, and route information in various programs
 used by computers and GPS receivers.  
 <a href="http://www.topografix.com/gpx.asp" target="_top">GPX</a>  defines a
 standard in XML to contain all the data, but there are too many
 programs that don't understand it yet and too much data that are in an
 alternate formats.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="The_Solution"></a>The Solution</h2></div></div></div><p> I needed to convert waypoints between a couple of formats, so I
+</p><p>
+Perhaps you have an Explorist 600 and your friend has a StreetPilot 2720.
+You've collected a a list of your favorite locations as waypoints and you'd
+like to be able to share them.  Unfortunately, his copy of Garmin Mapsource
+won't read data created by your copy of Magellan Directroute.  What you need
+is a program that converts data bewteen the two programs.
+</p><p>
+But GPSBabel actually does much more...
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="The_Solution"></a>The Solution</h2></div></div></div><p> The original author of GPSBabel, <a href="/people/robertlipe.html" target="_top">Robert Lipe</a>, needed to convert waypoints between a couple of formats, so he
 whipped up a converter and based it on an extensible foundation so
-that it was easy to add new formats.  Most file formats added so far
-have taken under 200 lines of reasonable ISO C so they can be stamped
-out pretty trivially.  Formats that are ASCII text delimited in some
-fixed way can be added with no programming at all via our 'style'
-mechanism.
-</p></div></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Getting_and_Building"></a>Chapter 1. Getting it and Building it</h2></div></div></div><p> 
+that it was easy to add new formats and made the program freely available. <a href="/people/index.html" target="_top">Many others</a> have contributed to the program since then.</p><p>  Most file formats added so far have taken under 200 
+       lines of reasonable ISO C so they can be stamped
+       out pretty trivially.  Formats that are ASCII text delimited in some
+       fixed way can be added with no programming at all via our 
+       <a href="#Styles" title="Appendix C. GPSBabel XCSV Style Files">style</a> mechanism.
+       </p></div></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Getting_and_Building"></a>Chapter 1. Getting it and Building it</h2></div></div></div><p> 
 GPSBabel is distributed "ready to run" on most common 
 operating systems via the 
 <a href="http://www.gpsbabel.org/download.html" target="_top">download page</a>.
@@ -33,15 +41,19 @@ ISO C89 compilers.  It's been tested on UnixWare, OpenServer, OS/X,
 Linux, Solaris, and a variety of processors and compilers.
 </p><p>
   In most cases, the code is as simple to build as running:
- </p><pre class="screen">./configure &amp;&amp; make</pre><p>
-</p><p><a href="http://expat.sourceforge.net" target="_top">Expat</a> 
+</p><p><strong class="userinput"><code> ./configure &amp;&amp; make</code></strong></p><p><a href="http://expat.sourceforge.net" target="_top">Expat</a> 
 is strongly recommended for source builds as it is
-required for reading all the XML formats such as GPX.
+required for reading all the XML formats such as GPX.  Fedora users
+may need to 'yum install expat-devel'.  Ubutnu users may need to 
+'apt-get install expat libexpat-dev'.
 </p><p><a href="http://libusb.sourceforge.net" target="_top">libusb</a> 
 is recommended for OS/X and Linux if you want to use a USB Garmin.
+Fedora users may need to 'yum install expat-devel'.  Ubutnu users may
+need to 'apt-get install libusb-dev'.
 </p><p>There are additional flags that can be passed to configure to
- customize your build of GPSBabel.   </p><pre class="screen"> ./configure --help</pre><p> lists all the supported options, but additionally we have:
-</p><p>
+ customize your build of GPSBabel.   
+</p><p><strong class="userinput"><code>./configure --help</code></strong></p><p>
+lists all the supported options, but additionally we have:
  <code class="option">--disable-shapefile</code> Excludes the shapefile support.
 </p><p>
  <code class="option">--disable-pdb</code> Excludes the Palm database support and all formats that rely on it.
@@ -57,29 +69,32 @@ is recommended for OS/X and Linux if you want to use a USB Garmin.
   <code class="option">--without-libusb</code> Disables use of libusb, even it's it's available.
 </p><p>
  <code class="option">--with-zlib=(included)|system|no</code> By default, we use our own version of zlib. If you specify <code class="option">system</code> the system zlib is used.  A value of <code class="option">no</code> (or --without-zlib) disables zlib.
-</p></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Usage"></a>Chapter 2. Usage</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#Invocation">Invocation</a></span></dt><dt><span class="sect1"><a href="#Advanced_Usage">Advanced Usage</a></span></dt><dt><span class="sect1"><a href="#Route_And_Track_Modes">Route and Track Modes</a></span></dt><dt><span class="sect1"><a href="#inifile">Working with predefined options</a></span></dt><dt><span class="sect1"><a href="#tracking">Realtime tracking</a></span></dt><dt><span class="sect1"><a href="#batchfile">Batch mode (command files)</a></span></dt></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Invocation"></a>Invocation</h2></div></div></div><p>Invocation was meant to be flexible.  Unfortunately,
-         that can sometimes lead to unwieldy command lines.</p><p>
+</p></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Usage"></a>Chapter 2. Usage</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#Invocation">Invocation</a></span></dt><dt><span class="sect1"><a href="#Suboptions">Suboptions</a></span></dt><dt><span class="sect1"><a href="#Advanced_Usage">Advanced Usage</a></span></dt><dt><span class="sect1"><a href="#Route_And_Track_Modes">Route and Track Modes</a></span></dt><dt><span class="sect1"><a href="#inifile">Working with predefined options</a></span></dt><dt><span class="sect1"><a href="#tracking">Realtime tracking</a></span></dt><dt><span class="sect1"><a href="#batchfile">Batch mode (command files)</a></span></dt></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Invocation"></a>Invocation</h2></div></div></div><p>
 If you're using GPSBabel, you will need to know how to do at least two things:
 read data from a file, and write it to another file.  There are four basic
-commands you need to know to do those things:
+options you need to know to do those things:
 </p><div class="segmentedlist"><table border="0"><thead><tr class="segtitle"><th>Command</th><th>Meaning</th></tr></thead><tbody><tr class="seglistitem"><td class="seg"><code class="option">-i</code> <em class="parameter"><code>format</code></em></td><td class="seg">Set input format</td></tr><tr class="seglistitem"><td class="seg"><code class="option">-f</code> <em class="parameter"><code>filename</code></em></td><td class="seg">Read file</td></tr><tr class="seglistitem"><td class="seg"><code class="option">-o</code> <em class="parameter"><code>format</code></em></td><td class="seg">Set output format</td></tr><tr class="seglistitem"><td class="seg"><code class="option">-F</code> <em class="parameter"><code>filename</code></em></td><td class="seg">Write output File</td></tr></tbody></table></div><p>
 The <em class="parameter"><code>format</code></em> parameters in the above list
 refer to the names of formats or file types supported by GPSBabel. 
-</p><pre class="screen">gpsbabel -? </pre><p>will always show you the supported file types.  In this document, the
+</p><p><strong class="userinput"><code>gpsbabel -? </code></strong></p><p>will always show you the supported file types.  In this document, the
 various supported formats are listed in <a href="#The_Formats" title="Chapter 3. The Formats">Chapter 3, <i>The Formats</i></a>.  The 
 name that you would use on the command line follows the format name in 
 parentheses.
 </p><p>
+Options are <span class="emphasis"><em>always</em></span> processed in order from left to right.
+In practical terms, this means that things you want to read should appear
+in the command before things you want to write.
+</p><p>
 The <em class="parameter"><code>filename</code></em> parameters specify the 
 name of a file to be read or written.
 </p><p>To use
          this program, just tell it what you're reading, where to read
          it from, what you're writing, and what to write it to.  For
-         example:</p><pre class="screen">gpsbabel -i geo -f /tmp/geocaching.loc -o gpx -F /tmp/geocaching.gpx</pre><p>tells it to read the file "/tmp/geocaching.loc" in geocaching.com
+         example:</p><p><strong class="userinput"><code>gpsbabel -i geo -f /tmp/geocaching.loc -o gpx -F /tmp/geocaching.gpx</code></strong></p><p>tells it to read the file "/tmp/geocaching.loc" in geocaching.com
          format and create a new file in GPX format.</p><p> This command will read from a Magellan unit attached
          to the first serial port on a Linux system (device names will
          vary on other OSes) and write them as a geocaching loc file.
-         The second command does the same on Microsoft Windows.</p><pre class="screen">gpsbabel -i magellan -f /dev/ttyS0 -o geo -F mag.loc</pre><pre class="screen">gpsbabel -i magellan -f com1 -o geo -F mag.loc</pre><p>Optionally, you may specify <em class="parameter"><code>"-s"</code></em> in any command line.  This
+         The second command does the same on Microsoft Windows.</p><p><strong class="userinput"><code>gpsbabel -i magellan -f /dev/ttyS0 -o geo -F mag.loc</code></strong></p><p><strong class="userinput"><code>gpsbabel -i magellan -f com1 -o geo -F mag.loc</code></strong></p><p>Optionally, you may specify <em class="parameter"><code>"-s"</code></em> in any command line.  This
          causes the program to ignore any "short" names that may be
          present in the source data format and synthesize one from the
          long name.  This is particularly useful if you're writing to
@@ -89,7 +104,28 @@ name of a file to be read or written.
          to my Magellan so my waypoints have "real" names instead of
          the 'GC1234' ones that are optimized for NMEA-only receivers.
          A geocacher with a Magellan receiver may thus find commands
-         like this useful.</p><pre class="screen"> gpsbabel -s -i geo -f geocaching.loc -o magellan -F /dev/ttyS0  </pre><pre class="screen"> gpsbabel -s -i geo -f geocaching.loc -o magellan -F com1</pre></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Advanced_Usage"></a>Advanced Usage</h2></div></div></div><p>Argument are processed in the order they appear on the command
+         like this useful.</p><p><strong class="userinput"><code>gpsbabel -s -i geo -f geocaching.loc -o magellan -F /dev/ttyS0  </code></strong></p><p><strong class="userinput"><code>gpsbabel -s -i geo -f geocaching.loc -o magellan -F com1</code></strong></p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Suboptions"></a>Suboptions</h2></div></div></div><p>
+         Many of the available format options in GPSBabel can themselves
+         take options.   While we try to make all the formats do the most
+         sensible thing possible without any extra options, this allows
+         great power and flexibility in the operation of the program.
+       </p><p>
+         Suboptions are comma separated and immediately follow the option
+         itself. The available suboptions are listed on the individual 
+         format pages.  We'll make an example from <a href="#fmt_kml" title="Google Earth (Keyhole) Markup Language (kml)">the section called “Google Earth (Keyhole) Markup Language (kml)”</a>:
+       </p><p><strong class="userinput"><code>gpsbabel -i gpx -f file.gpx -o kml,deficon="file://myicon.png",lines=0 -F one.kml -o kml -F two.kml</code></strong></p><p>
+       This command will read the GPX file <code class="filename">file.gpx</code>
+       and create two KML files.    <code class="filename">one.kml</code> will
+       have the given icon and no lines between track and routepoints.
+       <code class="filename">two.kml</code> will be created with the defaults used
+       in the KML writer.
+       </p><p>
+       Suboptions for the various formats allow you to change serial speeds,
+       pass arguments to filters, change the type of file written, override
+       icon defaults, and lots of other things.   The suboptions for each
+       filetype are documented on the page in this document that describes
+       the option itself.
+       </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Advanced_Usage"></a>Advanced Usage</h2></div></div></div><p>Argument are processed in the order they appear on the command
 line and are translated internally into a pipeline that data flows
 through when executed. Normally one would: </p><table class="simplelist" border="0" summary="Simple list"><tr><td>read from one input</td></tr><tr><td>optionally apply filters </td></tr><tr><td>write into one output</td></tr></table><p> but GPSBabel is flexible enough to allow more complicated
 operations such as reading from several files (potentially of
@@ -98,23 +134,29 @@ merged data to multiple destinations.
 </p><p>The input file type remains unchanged until a new
          <em class="parameter"><code>-i</code></em> argument is seen.
          Files are read in the order they appear. So you could merge
-         three input files into one output file with: </p><pre class="screen">gpsbabel -i geo -f 1.loc -f 2.loc -f 3.loc -o geo -F big.loc</pre><p>You can merge files of different types:</p><pre class="screen">gpsbabel  -i geo -f 1.loc -i gpx -f 2.gpx -i pcx 3.pcx \ 
--o gpsutil -F big.gps</pre><p> You can write the same data in different output formats:</p><pre class="screen">gpsbabel -i geo -f 1.loc -o gpx -F 1.gpx -o pcx 1.wpt</pre><p>If you want to change the character set of input or/and
+         three input files into one output file with: </p><p><strong class="userinput"><code>gpsbabel -i geo -f 1.loc -f 2.loc -f 3.loc -o geo -F big.loc</code></strong></p><p>You can merge files of different types:</p><p><strong class="userinput"><code>gpsbabel  -i geo -f 1.loc -i gpx -f 2.gpx -i pcx 3.pcx  
+-o gpsutil -F big.gps</code></strong></p><p> You can write the same data in different output formats:</p><p><strong class="userinput"><code>gpsbabel -i geo -f 1.loc -o gpx -F 1.gpx -o pcx -F 1.wpt</code></strong></p><p>If you want to change the character set of input or/and
          output side you can do this with the option <code class="option">-c
          &lt;character set&gt;</code>. You can get a complete list
          of supported character sets with "gpsbabel -l".  To change
-         the character set on both sides you should do this:</p><pre class="screen">gpsbabel -i xcsv,style=foo.style -c latin1 -f foo  \
-                -o xcsv,style=bar.style -c ms-ansi -F bar</pre><p>Note, that some formats has a fixed character set and ignore this option.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Route_And_Track_Modes"></a>Route and Track Modes</h2></div></div></div><p> Most formats will make reasonable attempt to work
+         the character set on both sides you should do this:</p><p><strong class="userinput"><code>gpsbabel -i xcsv,style=foo.style -c latin1 -f foo -o xcsv,style=bar.style -c ms-ansi -F bar</code></strong></p><p>Note, that some formats has a fixed character set and ignore this option.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Route_And_Track_Modes"></a>Route and Track Modes</h2></div></div></div><p> Most formats supported by GPSBabel will make a reasonable attempt to work
          transparently with waypoints, tracks, and routes.  Some
-         formats, like 'garmin' and 'magellan' require the <em class="parameter"><code>-t</code></em> flag to work with tracks and
+         formats, like <a href="#fmt_garmin" title="Garmin serial/USB protocol (garmin)">garmin</a> and <a href="#fmt_magellan" title="Magellan SD files (as for Meridian) (magellan)">magellan</a> require the <em class="parameter"><code>-t</code></em> flag to work with tracks and
          <em class="parameter"><code>-r</code></em> to work with
          routes. <em class="parameter"><code>-w</code></em> is for
          waypoints, and is the default. So if you wanted to read all
-         data from your unit into a gpx file, you might use a command
-         like:</p><pre class="screen"> gpsbabel -t -r -w -i magellan -f com1:  -o gpx -F backup.gpx</pre><p> Tracks and routes are advanced features and don't try
+         data from a Magellan Meridian GPS receiver into a gpx file, you might use a command
+         like:</p><p><strong class="userinput"><code> gpsbabel -t -r -w -i magellan -f com1:  -o gpx -F backup.gpx</code></strong></p><p> Tracks and routes are advanced features and don't try
          to handle every possible hazard that can be encountered
          during a conversion.  If you're merging or converting files
-         of similar limitations, things work very well.</p><p> Tracks and routes will sometimes be converted to a
+         of similar limitations, things work very well.</p><p> Many of those hazards can be overcome with our filters
+        but there are often compromises to be made.  For example, if you
+        have a GPX route that contains  150 turn points but you're sending
+        the route to a GPS receiver that supports only 30 turnpoints, something has
+        to go.   One might use our 'simplify' filter to produce a route that
+        retained the 30 most mathematically significant turnpoints but that
+        may not really be the route you had in mind.
+        </p><p> Tracks and routes will sometimes be converted to a
          list of waypoints when necessary, f.i. when writing into one
          of the CSV formats. The inverse operation is not supported
          right now, so reading the converted track back from CSV will
@@ -157,35 +199,32 @@ merged data to multiple destinations.
       There may be situations where predefined values are not useable 
       (i.e. wrapper applications using GPSBabel in the background). 
        The inifile mechanism can be disabled with an empty filename.
-    </p><pre class="screen">gpsbabel -p "" -i gpx -f something.gpx -o tiger -F -</pre></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="tracking"></a>Realtime tracking</h2></div></div></div><p>
-      Introduced in GPSBabel 1.3.1, we now have an <span class="emphasis"><em>experimental</em></span>  feature for realtime tracking via the new '-T' option.  This reads position reports from selected formats and writes an output file when a position report is received. 
+    </p><p><strong class="userinput"><code>gpsbabel -p "" -i gpx -f something.gpx -o tiger -F -</code></strong></p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="tracking"></a>Realtime tracking</h2></div></div></div><p>
+      Introduced in GPSBabel 1.3.1, we now have an <span class="emphasis"><em>experimental</em></span>  feature for realtime tracking via the new <code class="option">-T</code> option.  This reads position reports from selected formats and writes an output file when a position report is received. 
     </p><p>
          As of this writing, Garmin's PVT protocol and NMEA are supported 
          inputs and KML is supported on output.   Additional formats 
          may be added by interested parties later.
-    </p><p>
-    </p><pre class="screen">gpsbabel -T -i garmin -f usb: -o kml -F xxx.kml</pre><p>
+    </p><p><strong class="userinput"><code>gpsbabel -T -i garmin -f usb: -o kml -F xxx.kml</code></strong></p><p>
          Will read the USB-connected Garmin and rewrite 'xxx.kml' atomically,
          suitable for a self-refreshing network link in Google Earth.
     </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="batchfile"></a>Batch mode (command files)</h2></div></div></div><p>
        In addition to reading arguments from the command line, GPSBabel can
-       read directions from batch (or command) files via the '-b' option.
+       read directions from batch (or command) files via the <code class="option">-b</code> option.
   </p><p>
     These files are ideal for holding long command lines, long file lists, complex filters 
     and so on. You can use all GPSBabel options and combinations when writing
-    such files. Nesting batch files by using the '-b' option within a batch file is supported.
+    such files. Nesting batch files by using the <code class="option">-b</code> option within a batch file is supported.
   </p><p>
   Here is an example demonstrating segmenting a large command line
   by placing the input and filtering directives in a file called 'all_my_files'.
-  </p><pre class="screen">gpsbabel -b all_my_files -o gdb -F all_my_tracks.gdb</pre><p>
-  </p><p>
+  </p><p><strong class="userinput"><code>gpsbabel -b all_my_files -o gdb -F all_my_tracks.gdb</code></strong></p><p>
     'all_my_files' could look like this:
-  </p><table class="simplelist" border="0" summary="Simple list"><tr><td>-i gpx</td></tr><tr><td>-f saxony_in_summer_2004.gpx -f austria_2005.gpx</td></tr><tr><td>-i gdb</td></tr><tr><td>-f croatia_2006.gdb</td></tr><tr><td>-x nuketypes,waypoints,routes</td></tr><tr><td>-x track,pack,split,title="LOG # %Y%m%d"</td></tr></table></div></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="The_Formats"></a>Chapter 3. The Formats</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#fmt_xcsv">? Character Separated Values (xcsv)</a></span></dt><dt><span class="section"><a href="#fmt_tabsep">All database fields on one tab-separated line (tabsep)</a></span></dt><dt><span class="section"><a href="#fmt_baroiq">Brauniger IQ Series Barograph Download (baroiq)</a></span></dt><dt><span class="section"><a href="#fmt_cambridge">Cambridge/Winpilot glider software (cambridge)</a></span></dt><dt><span class="section"><a href="#fmt_cst">CarteSurTable data file (cst)</a></span></dt><dt><span class="section"><a href="#fmt_cetus">Cetus for Palm/OS (cetus)</a></span></dt><dt><span class="section"><a href="#fmt_coastexp">CoastalExplorer XML (coastexp)</a></span></dt><dt><span class="section"><a href="#fmt_csv">Comma separated values (csv)</a></span></dt><dt><span class="section"><a href="#fmt_compegps">CompeGPS data files (.wpt/.trk/.rte) (compegps)</a></span></dt><dt><span class="section"><a href="#fmt_copilot">CoPilot Flight Planner for Palm/OS (copilot)</a></span></dt><dt><span class="section"><a href="#fmt_coto">cotoGPS for Palm/OS (coto)</a></span></dt><dt><span class="section"><a href="#fmt_custom">Custom "Everything" Style (custom)</a></span></dt><dt><span class="section"><a href="#fmt_axim_gpb">Dell Axim Navigation System (.gpb) file format (axim_gpb)</a></span></dt><dt><span class="section"><a href="#fmt_an1">DeLorme .an1 (drawing) file (an1)</a></span></dt><dt><span class="section"><a href="#fmt_gpl">DeLorme GPL (gpl)</a></span></dt><dt><span class="section"><a href="#fmt_saplus">DeLorme Street Atlas Plus (saplus)</a></span></dt><dt><span class="section"><a href="#fmt_saroute">DeLorme Street Atlas Route (saroute)</a></span></dt><dt><span class="section"><a href="#fmt_xmap">DeLorme XMap HH Native .WPT (xmap)</a></span></dt><dt><span class="section"><a href="#fmt_xmap2006">DeLorme XMap/SAHH 2006 Native .TXT (xmap2006)</a></span></dt><dt><span class="section"><a href="#fmt_xmapwpt">DeLorme XMat HH Street Atlas USA .WPT (PPC) (xmapwpt)</a></span></dt><dt><span class="section"><a href="#fmt_easygps">EasyGPS binary format (easygps)</a></span></dt><dt><span class="section"><a href="#fmt_igc">FAI/IGC Flight Recorder Data Format (igc)</a></span></dt><dt><span class="section"><a href="#fmt_gpssim">Franson GPSGate Simulation (gpssim)</a></span></dt><dt><span class="section"><a href="#fmt_fugawi">Fugawi (fugawi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin301">Garmin 301 Custom position and heartrate (garmin301)</a></span></dt><dt><span class="section"><a href="#fmt_glogbook">Garmin Logbook XML (glogbook)</a></span></dt><dt><span class="section"><a href="#fmt_gdb">Garmin MapSource - gdb (gdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapsource">Garmin MapSource - mps (mapsource)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_txt">Garmin MapSource - txt (tab delimited) (garmin_txt)</a></span></dt><dt><span class="section"><a href="#fmt_pcx">Garmin PCX5 (pcx)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_poi">Garmin POI database (garmin_poi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin">Garmin serial/USB protocol (garmin)</a></span></dt><dt><span class="section"><a href="#fmt_gtrnctr">Garmin Training Centerxml (gtrnctr)</a></span></dt><dt><span class="section"><a href="#fmt_geo">Geocaching.com .loc (geo)</a></span></dt><dt><span class="section"><a href="#fmt_gcdb">GeocachingDB for Palm/OS (gcdb)</a></span></dt><dt><span class="section"><a href="#fmt_geonet">GEOnet Names Server (GNS) (geonet)</a></span></dt><dt><span class="section"><a href="#fmt_geoniche">GeoNiche .pdb (geoniche)</a></span></dt><dt><span class="section"><a href="#fmt_kml">Google Earth (Keyhole) Markup Language (kml)</a></span></dt><dt><span class="section"><a href="#fmt_google">Google Maps XML (google)</a></span></dt><dt><span class="section"><a href="#fmt_gpilots">GpilotS (gpilots)</a></span></dt><dt><span class="section"><a href="#fmt_gtm">GPS TrackMaker (gtm)</a></span></dt><dt><span class="section"><a href="#fmt_arc">GPSBabel arc filter file (arc)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrive">GpsDrive Format (gpsdrive)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrivetrack">GpsDrive Format for Tracks (gpsdrivetrack)</a></span></dt><dt><span class="section"><a href="#fmt_gpsman">GPSman (gpsman)</a></span></dt><dt><span class="section"><a href="#fmt_gpspilot">GPSPilot Tracker for Palm/OS (gpspilot)</a></span></dt><dt><span class="section"><a href="#fmt_gpsutil">gpsutil (gpsutil)</a></span></dt><dt><span class="section"><a href="#fmt_gpx">GPX XML (gpx)</a></span></dt><dt><span class="section"><a href="#fmt_hiketech">HikeTech (hiketech)</a></span></dt><dt><span class="section"><a href="#fmt_holux">Holux (gm-100) .wpo Format (holux)</a></span></dt><dt><span class="section"><a href="#fmt_hsandv">HSA Endeavour Navigator export File (hsandv)</a></span></dt><dt><span class="section"><a href="#fmt_html">HTML Output (html)</a></span></dt><dt><span class="section"><a href="#fmt_ignrando">IGN Rando track files (ignrando)</a></span></dt><dt><span class="section"><a href="#fmt_ktf2">Kartex 5 Track File (ktf2)</a></span></dt><dt><span class="section"><a href="#fmt_kwf2">Kartex 5 Waypoint File (kwf2)</a></span></dt><dt><span class="section"><a href="#fmt_psitrex">KuDaTa PsiTrex text (psitrex)</a></span></dt><dt><span class="section"><a href="#fmt_lowranceusr">Lowrance USR (lowranceusr)</a></span></dt><dt><span class="section"><a href="#fmt_maggeo">Magellan Explorist Geocaching (maggeo)</a></span></dt><dt><span class="section"><a href="#fmt_mapsend">Magellan Mapsend (mapsend)</a></span></dt><dt><span class="section"><a href="#fmt_magnav">Magellan NAV Companion for Palm/OS (magnav)</a></span></dt><dt><span class="section"><a href="#fmt_magellanx">Magellan SD files (as for eXplorist) (magellanx)</a></span></dt><dt><span class="section"><a href="#fmt_magellan">Magellan SD files (as for Meridian) (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_magellan1">Magellan serial protocol (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_tef">Map&amp;Guide 'TourExchangeFormat' XML (tef)</a></span></dt><dt><span class="section"><a href="#fmt_mag_pdb">Map&amp;Guide to Palm/OS exported files (.pdb) (mag_pdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapconverter">Mapopolis.com Mapconverter CSV (mapconverter)</a></span></dt><dt><span class="section"><a href="#fmt_mxf">MapTech Exchange Format (mxf)</a></span></dt><dt><span class="section"><a href="#fmt_msroute">Microsoft AutoRoute 2002 (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_msroute1">Microsoft Streets and Trips (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_s_and_t">Microsoft Streets and Trips 2002-2006 (s_and_t)</a></span></dt><dt><span class="section"><a href="#fmt_bcr">Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)</a></span></dt><dt><span class="section"><a href="#fmt_psp">MS PocketStreets 2002 Pushpin (psp)</a></span></dt><dt><span class="section"><a href="#fmt_tpg">National Geographic Topo .tpg (waypoints) (tpg)</a></span></dt><dt><span class="section"><a href="#fmt_tpo2">National Geographic Topo 2.x .tpo (tpo2)</a></span></dt><dt><span class="section"><a href="#fmt_tpo3">National Geographic Topo 3.x/4.x .tpo (tpo3)</a></span></dt><dt><span class="section"><a href="#fmt_navicache">Navicache.com XML (navicache)</a></span></dt><dt><span class="section"><a href="#fmt_nmn4">Navigon Mobile Navigator .rte files (nmn4)</a></span></dt><dt><span class="section"><a href="#fmt_dna">Navitrak DNA marker format (dna)</a></span></dt><dt><span class="section"><a href="#fmt_netstumbler">NetStumbler Summary File (text) (netstumbler)</a></span></dt><dt><span class="section"><a href="#fmt_nima">NIMA/GNIS Geographic Names File (nima)</a></span></dt><dt><span class="section"><a href="#fmt_nmea">NMEA 0183 sentences (nmea)</a></span></dt><dt><span class="section"><a href="#fmt_ozi">OziExplorer (ozi)</a></span></dt><dt><span class="section"><a href="#fmt_palmdoc">PalmDoc Output (palmdoc)</a></span></dt><dt><span class="section"><a href="#fmt_pathaway">PathAway Database for Palm/OS (pathaway)</a></span></dt><dt><span class="section"><a href="#fmt_quovadis">Quovadis (quovadis)</a></span></dt><dt><span class="section"><a href="#fmt_cup">See You flight analysis data (cup)</a></span></dt><dt><span class="section"><a href="#fmt_sportsim">Sportsim track files (part of zipped .ssz files) (sportsim)</a></span></dt><dt><span class="section"><a href="#fmt_stmsdf">Suunto Trek Manager (STM) .sdf files (stmsdf)</a></span></dt><dt><span class="section"><a href="#fmt_stmwpp">Suunto Trek Manager (STM) WaypointPlus files (stmwpp)</a></span></dt><dt><span class="section"><a href="#fmt_openoffice">Tab delimited fields useful for OpenOffice, Ploticus etc. (openoffice)</a></span></dt><dt><span class="section"><a href="#fmt_text">Textual Output (text)</a></span></dt><dt><span class="section"><a href="#fmt_tomtom">TomTom POI file (tomtom)</a></span></dt><dt><span class="section"><a href="#fmt_tmpro">TopoMapPro Places File (tmpro)</a></span></dt><dt><span class="section"><a href="#fmt_dmtlog">TrackLogs digital mapping (.trl) (dmtlog)</a></span></dt><dt><span class="section"><a href="#fmt_tiger">U.S. Census Bureau Tiger Mapping Service (tiger)</a></span></dt><dt><span class="section"><a href="#fmt_unicsv">Universal csv with field structure in first line (unicsv)</a></span></dt><dt><span class="section"><a href="#fmt_vcard">Vcard Output (for iPod) (vcard)</a></span></dt><dt><span class="section"><a href="#fmt_vitosmt">Vito Navigator II tracks (vitosmt)</a></span></dt><dt><span class="section"><a href="#fmt_wfff">WiFiFoFum 2.0 for PocketPC XML (wfff)</a></span></dt><dt><span class="section"><a href="#fmt_wbt-bin">Wintec WBT-100/200 Binary file format (wbt-bin)</a></span></dt><dt><span class="section"><a href="#fmt_wbt">Wintec WBT-100/200 GPS Download (wbt)</a></span></dt><dt><span class="section"><a href="#fmt_yahoo">Yahoo Geocode API data (yahoo)</a></span></dt></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xcsv"></a>? Character Separated Values (xcsv)</h2></div></div></div><p>
+  </p><table class="simplelist" border="0" summary="Simple list"><tr><td>-i gpx</td></tr><tr><td>-f saxony_in_summer_2004.gpx -f austria_2005.gpx</td></tr><tr><td>-i gdb</td></tr><tr><td>-f croatia_2006.gdb</td></tr><tr><td>-x nuketypes,waypoints,routes</td></tr><tr><td>-x track,pack,split,title="LOG # %Y%m%d"</td></tr></table></div></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="The_Formats"></a>Chapter 3. The Formats</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#fmt_xcsv">? Character Separated Values (xcsv)</a></span></dt><dt><span class="section"><a href="#fmt_alantrl">Alan Map500 tracklogs (.trl) (alantrl)</a></span></dt><dt><span class="section"><a href="#fmt_alanwpr">Alan Map500 waypoints and routes (.wpr) (alanwpr)</a></span></dt><dt><span class="section"><a href="#fmt_tabsep">All database fields on one tab-separated line (tabsep)</a></span></dt><dt><span class="section"><a href="#fmt_baroiq">Brauniger IQ Series Barograph Download (baroiq)</a></span></dt><dt><span class="section"><a href="#fmt_cambridge">Cambridge/Winpilot glider software (cambridge)</a></span></dt><dt><span class="section"><a href="#fmt_cst">CarteSurTable data file (cst)</a></span></dt><dt><span class="section"><a href="#fmt_cetus">Cetus for Palm/OS (cetus)</a></span></dt><dt><span class="section"><a href="#fmt_coastexp">CoastalExplorer XML (coastexp)</a></span></dt><dt><span class="section"><a href="#fmt_csv">Comma separated values (csv)</a></span></dt><dt><span class="section"><a href="#fmt_compegps">CompeGPS data files (.wpt/.trk/.rte) (compegps)</a></span></dt><dt><span class="section"><a href="#fmt_copilot">CoPilot Flight Planner for Palm/OS (copilot)</a></span></dt><dt><span class="section"><a href="#fmt_coto">cotoGPS for Palm/OS (coto)</a></span></dt><dt><span class="section"><a href="#fmt_custom">Custom "Everything" Style (custom)</a></span></dt><dt><span class="section"><a href="#fmt_axim_gpb">Dell Axim Navigation System (.gpb) file format (axim_gpb)</a></span></dt><dt><span class="section"><a href="#fmt_an1">DeLorme .an1 (drawing) file (an1)</a></span></dt><dt><span class="section"><a href="#fmt_gpl">DeLorme GPL (gpl)</a></span></dt><dt><span class="section"><a href="#fmt_saplus">DeLorme Street Atlas Plus (saplus)</a></span></dt><dt><span class="section"><a href="#fmt_saroute">DeLorme Street Atlas Route (saroute)</a></span></dt><dt><span class="section"><a href="#fmt_xmap">DeLorme XMap HH Native .WPT (xmap)</a></span></dt><dt><span class="section"><a href="#fmt_xmap2006">DeLorme XMap/SAHH 2006 Native .TXT (xmap2006)</a></span></dt><dt><span class="section"><a href="#fmt_xmapwpt">DeLorme XMat HH Street Atlas USA .WPT (PPC) (xmapwpt)</a></span></dt><dt><span class="section"><a href="#fmt_easygps">EasyGPS binary format (easygps)</a></span></dt><dt><span class="section"><a href="#fmt_igc">FAI/IGC Flight Recorder Data Format (igc)</a></span></dt><dt><span class="section"><a href="#fmt_gpssim">Franson GPSGate Simulation (gpssim)</a></span></dt><dt><span class="section"><a href="#fmt_fugawi">Fugawi (fugawi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin301">Garmin 301 Custom position and heartrate (garmin301)</a></span></dt><dt><span class="section"><a href="#fmt_glogbook">Garmin Logbook XML (glogbook)</a></span></dt><dt><span class="section"><a href="#fmt_gdb">Garmin MapSource - gdb (gdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapsource">Garmin MapSource - mps (mapsource)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_txt">Garmin MapSource - txt (tab delimited) (garmin_txt)</a></span></dt><dt><span class="section"><a href="#fmt_pcx">Garmin PCX5 (pcx)</a></span></dt><dt><span class="section"><a href="#fmt_garmin_poi">Garmin POI database (garmin_poi)</a></span></dt><dt><span class="section"><a href="#fmt_garmin">Garmin serial/USB protocol (garmin)</a></span></dt><dt><span class="section"><a href="#fmt_gtrnctr">Garmin Training Centerxml (gtrnctr)</a></span></dt><dt><span class="section"><a href="#fmt_geo">Geocaching.com .loc (geo)</a></span></dt><dt><span class="section"><a href="#fmt_gcdb">GeocachingDB for Palm/OS (gcdb)</a></span></dt><dt><span class="section"><a href="#fmt_geonet">GEOnet Names Server (GNS) (geonet)</a></span></dt><dt><span class="section"><a href="#fmt_geoniche">GeoNiche .pdb (geoniche)</a></span></dt><dt><span class="section"><a href="#fmt_kml">Google Earth (Keyhole) Markup Language (kml)</a></span></dt><dt><span class="section"><a href="#fmt_google">Google Maps XML (google)</a></span></dt><dt><span class="section"><a href="#fmt_gpilots">GpilotS (gpilots)</a></span></dt><dt><span class="section"><a href="#fmt_gtm">GPS TrackMaker (gtm)</a></span></dt><dt><span class="section"><a href="#fmt_arc">GPSBabel arc filter file (arc)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrive">GpsDrive Format (gpsdrive)</a></span></dt><dt><span class="section"><a href="#fmt_gpsdrivetrack">GpsDrive Format for Tracks (gpsdrivetrack)</a></span></dt><dt><span class="section"><a href="#fmt_gpsman">GPSman (gpsman)</a></span></dt><dt><span class="section"><a href="#fmt_gpspilot">GPSPilot Tracker for Palm/OS (gpspilot)</a></span></dt><dt><span class="section"><a href="#fmt_gpsutil">gpsutil (gpsutil)</a></span></dt><dt><span class="section"><a href="#fmt_gpx">GPX XML (gpx)</a></span></dt><dt><span class="section"><a href="#fmt_hiketech">HikeTech (hiketech)</a></span></dt><dt><span class="section"><a href="#fmt_holux">Holux (gm-100) .wpo Format (holux)</a></span></dt><dt><span class="section"><a href="#fmt_hsandv">HSA Endeavour Navigator export File (hsandv)</a></span></dt><dt><span class="section"><a href="#fmt_html">HTML Output (html)</a></span></dt><dt><span class="section"><a href="#fmt_ignrando">IGN Rando track files (ignrando)</a></span></dt><dt><span class="section"><a href="#fmt_ktf2">Kartex 5 Track File (ktf2)</a></span></dt><dt><span class="section"><a href="#fmt_kwf2">Kartex 5 Waypoint File (kwf2)</a></span></dt><dt><span class="section"><a href="#fmt_kompass_tk">Kompass (DAV) Track (.tk) (kompass_tk)</a></span></dt><dt><span class="section"><a href="#fmt_kompass_wp">Kompass (DAV) Waypoints (.wp) (kompass_wp)</a></span></dt><dt><span class="section"><a href="#fmt_psitrex">KuDaTa PsiTrex text (psitrex)</a></span></dt><dt><span class="section"><a href="#fmt_lowranceusr">Lowrance USR (lowranceusr)</a></span></dt><dt><span class="section"><a href="#fmt_maggeo">Magellan Explorist Geocaching (maggeo)</a></span></dt><dt><span class="section"><a href="#fmt_mapsend">Magellan Mapsend (mapsend)</a></span></dt><dt><span class="section"><a href="#fmt_magnav">Magellan NAV Companion for Palm/OS (magnav)</a></span></dt><dt><span class="section"><a href="#fmt_magellanx">Magellan SD files (as for eXplorist) (magellanx)</a></span></dt><dt><span class="section"><a href="#fmt_magellan">Magellan SD files (as for Meridian) (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_magellan1">Magellan serial protocol (magellan)</a></span></dt><dt><span class="section"><a href="#fmt_tef">Map&amp;Guide 'TourExchangeFormat' XML (tef)</a></span></dt><dt><span class="section"><a href="#fmt_mag_pdb">Map&amp;Guide to Palm/OS exported files (.pdb) (mag_pdb)</a></span></dt><dt><span class="section"><a href="#fmt_mapconverter">Mapopolis.com Mapconverter CSV (mapconverter)</a></span></dt><dt><span class="section"><a href="#fmt_mxf">MapTech Exchange Format (mxf)</a></span></dt><dt><span class="section"><a href="#fmt_msroute">Microsoft AutoRoute 2002 (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_msroute1">Microsoft Streets and Trips (pin/route reader) (msroute)</a></span></dt><dt><span class="section"><a href="#fmt_s_and_t">Microsoft Streets and Trips 2002-2006 (s_and_t)</a></span></dt><dt><span class="section"><a href="#fmt_bcr">Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)</a></span></dt><dt><span class="section"><a href="#fmt_psp">MS PocketStreets 2002 Pushpin (psp)</a></span></dt><dt><span class="section"><a href="#fmt_tpg">National Geographic Topo .tpg (waypoints) (tpg)</a></span></dt><dt><span class="section"><a href="#fmt_tpo2">National Geographic Topo 2.x .tpo (tpo2)</a></span></dt><dt><span class="section"><a href="#fmt_tpo3">National Geographic Topo 3.x/4.x .tpo (tpo3)</a></span></dt><dt><span class="section"><a href="#fmt_navicache">Navicache.com XML (navicache)</a></span></dt><dt><span class="section"><a href="#fmt_nmn4">Navigon Mobile Navigator .rte files (nmn4)</a></span></dt><dt><span class="section"><a href="#fmt_dna">Navitrak DNA marker format (dna)</a></span></dt><dt><span class="section"><a href="#fmt_netstumbler">NetStumbler Summary File (text) (netstumbler)</a></span></dt><dt><span class="section"><a href="#fmt_nima">NIMA/GNIS Geographic Names File (nima)</a></span></dt><dt><span class="section"><a href="#fmt_nmea">NMEA 0183 sentences (nmea)</a></span></dt><dt><span class="section"><a href="#fmt_ozi">OziExplorer (ozi)</a></span></dt><dt><span class="section"><a href="#fmt_palmdoc">PalmDoc Output (palmdoc)</a></span></dt><dt><span class="section"><a href="#fmt_pathaway">PathAway Database for Palm/OS (pathaway)</a></span></dt><dt><span class="section"><a href="#fmt_quovadis">Quovadis (quovadis)</a></span></dt><dt><span class="section"><a href="#fmt_raymarine">Raymarine Waypoint File (.rwf) (raymarine)</a></span></dt><dt><span class="section"><a href="#fmt_cup">See You flight analysis data (cup)</a></span></dt><dt><span class="section"><a href="#fmt_sportsim">Sportsim track files (part of zipped .ssz files) (sportsim)</a></span></dt><dt><span class="section"><a href="#fmt_stmsdf">Suunto Trek Manager (STM) .sdf files (stmsdf)</a></span></dt><dt><span class="section"><a href="#fmt_stmwpp">Suunto Trek Manager (STM) WaypointPlus files (stmwpp)</a></span></dt><dt><span class="section"><a href="#fmt_openoffice">Tab delimited fields useful for OpenOffice, Ploticus etc. (openoffice)</a></span></dt><dt><span class="section"><a href="#fmt_text">Textual Output (text)</a></span></dt><dt><span class="section"><a href="#fmt_tomtom">TomTom POI file (tomtom)</a></span></dt><dt><span class="section"><a href="#fmt_tmpro">TopoMapPro Places File (tmpro)</a></span></dt><dt><span class="section"><a href="#fmt_dmtlog">TrackLogs digital mapping (.trl) (dmtlog)</a></span></dt><dt><span class="section"><a href="#fmt_tiger">U.S. Census Bureau Tiger Mapping Service (tiger)</a></span></dt><dt><span class="section"><a href="#fmt_unicsv">Universal csv with field structure in first line (unicsv)</a></span></dt><dt><span class="section"><a href="#fmt_vcard">Vcard Output (for iPod) (vcard)</a></span></dt><dt><span class="section"><a href="#fmt_vitosmt">Vito Navigator II tracks (vitosmt)</a></span></dt><dt><span class="section"><a href="#fmt_wfff">WiFiFoFum 2.0 for PocketPC XML (wfff)</a></span></dt><dt><span class="section"><a href="#fmt_wbt-bin">Wintec WBT-100/200 Binary file format (wbt-bin)</a></span></dt><dt><span class="section"><a href="#fmt_wbt">Wintec WBT-100/200 GPS Download (wbt)</a></span></dt><dt><span class="section"><a href="#fmt_yahoo">Yahoo Geocode API data (yahoo)</a></span></dt></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xcsv"></a>? Character Separated Values (xcsv)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is a very flexible module that can be used to read or write 
 nearly any plain-text record-based waypoint file.  This flexibility is 
 achieved by combining this format with "style" files that describe the 
@@ -196,7 +235,7 @@ machinery.  Each of those formats takes the same options as the xcsv format,
 with the obvious exception of the <code class="option">style</code> option.  
 Those formats are all based on style files that can be found in 
 the "style" directory in the GPSBabel source distribution.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_style"></a>style option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_style"></a><code class="option">style</code> option</h3></div></div></div><p>
       Full path to XCSV style file.
     </p><p>
 This option specifies the style file that defines the records to be read on
@@ -205,53 +244,108 @@ built-in xcsv-based styles; they have prebuilt style definitions.
 </p><p>
 For information on the format of xcsv style files, see 
 <a href="#Styles" title="Appendix C. GPSBabel XCSV Style Files">Appendix C, <i>GPSBabel XCSV Style Files</i></a>.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snlen"></a>snlen option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Max synthesized shortname length.
     </p><p>
 This option specifies the maximum allowable length for a short name on
 output.  This option overrides the style file.
 </p><p>
 Valid values for this option are 0 (off) and 1 (on).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snwhite"></a>snwhite option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snwhite"></a><code class="option">snwhite</code> option</h3></div></div></div><p>
       Allow whitespace synth. shortnames.
     </p><p>
 When this option is specified, GPSBabel will allow whitespace (spaces or tabs)
 in generated short names.  This option overrides the style file.
 </p><p>
 Valid values for this option are 0 (off) and 1 (on).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snupper"></a>snupper option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snupper"></a><code class="option">snupper</code> option</h3></div></div></div><p>
       UPPERCASE synth. shortnames.
     </p><p>
 When this option is specified, GPSBabel will make all short names contain
 only UPPERCASE characters.  This option overrides the style file.
 </p><p>
 Valid values for this option are 0 (off) and 1 (on).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snunique"></a>snunique option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_snunique"></a><code class="option">snunique</code> option</h3></div></div></div><p>
       Make synth. shortnames unique.
     </p><p>
 When this option is specified, GPSBabel will ensure that all short names are
 unique within the output file.  This option overrides the style file.
 </p><p>
 Valid values for this option are 0 (off) and 1 (on).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_urlbase"></a>urlbase option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_urlbase"></a><code class="option">urlbase</code> option</h3></div></div></div><p>
       Basename prepended to URL on output.
     </p><p>
 This option specifies the base name to prepend to a URL on output.  This 
 might be useful if an input file contains URLs in a relative format and you
 need them to be in an absolute format.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_prefer_shortnames"></a>prefer_shortnames option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_prefer_shortnames"></a><code class="option">prefer_shortnames</code> option</h3></div></div></div><p>
       Use shortname instead of description.
     </p><p>
 This option causes GPSBabel to use the short name of the waypoint instead
 of the description.  This overrides the style file.
 </p><p>
 Valid values for this option are 0 (off) and 1 (on).
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tabsep"></a>All database fields on one tab-separated line (tabsep)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_xcsv_o_datum"></a><code class="option">datum</code> option</h3></div></div></div><p>
+      GPS datum (def. WGS 84).
+    </p><p>
+This option specifies the GPS datum to be used on read or write. Valid values for this 
+option are listed in <a href="#Datums" title="Appendix A. Supported Datums">Appendix A, <i>Supported Datums</i></a>.
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_alantrl"></a>Alan Map500 tracklogs (.trl) (alantrl)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
+          read and write tracks
+        </p></li></ul></div><p>
+GPSBabel supports .wpr and .trl files for Alan Map500 devices running operating 
+system versions 2.xx.
+</p><p>
+.trl contain files tracklogs. If you use a CF-Card based
+operating system, tracklog files must have a <code class="filename">.TRL</code> extension when
+copied to the CF-Card. The default filename is <code class="filename">TEMP_TRK.TRL</code>.
+Only one <code class="filename">.TRL</code> file may be present.
+</p><p>
+Alan's operating system 3.0 for Map500 is not supported yet.
+At the time of this writing, OS3 is still beta.
+Documentation on the new dataformats is sparse.
+</p><p>
+The Alan Map500 handheld GPSr is identical to the Holux GM101.
+This GPSBabel module has only been tested against the Alan Map500.
+Still, if you use a GM101, GPSBabel will probably be able to convert
+your waypoints, routes and tracklogs.
+</p><p>
+For more information on the Alan Map500 visit
+<a href="http://www.alan-electronics.de/gps/gpsuebersicht.php3" target="_top">Alan Germany</a>. There is very informative <a href="http://www.alan-germany.de/forum/index.php" target="_top">forum</a>, too. The forum language is German but posts in English will be answered, too.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_alanwpr"></a>Alan Map500 waypoints and routes (.wpr) (alanwpr)</h2></div></div></div><p class="fmtcapshdr">
+    This format can...
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
+          read and write waypoints
+        </p></li><li><p class="fmtcapsitem">
+          read and write routes
+        </p></li></ul></div><p>
+GPSBabel supports .wpr and .trl files for Alan Map500 devices running operating 
+system versions 2.xx.
+</p><p>
+.wpr files contain waypoints and routes. If you use a CF-Card based
+operating system, waypoint files must have a <code class="filename">.WPR</code> extension when
+copied to the CF-Card. The default filename is <code class="filename">TEMPWPRT.WPR</code>.
+Only one <code class="filename">.WPR</code> file may be present.
+</p><p>
+Alan's operating system 3.0 for Map500 is not supported yet.
+At the time of this writing, OS3 is still beta.
+Documentation on the new dataformats is sparse.
+</p><p>
+The Alan Map500 handheld GPSr is identical to the Holux GM101.
+This GPSBabel module has only been tested against the Alan Map500.
+Still, if you use a GM101, GPSBabel will probably be able to convert
+your waypoints, routes and tracklogs.
+</p><p>
+For more information on the Alan Map500 visit
+<a href="http://www.alan-electronics.de/gps/gpsuebersicht.php3" target="_top">Alan Germany</a>. There is very informative <a href="http://www.alan-germany.de/forum/index.php" target="_top">forum</a>, too. Forum language is German but posts in English will be answered,
+too.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tabsep"></a>All database fields on one tab-separated line (tabsep)</h2></div></div></div><p class="fmtcapshdr">
+    This format can...
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
@@ -263,56 +357,54 @@ in sync with the documentation at <a href="#Styles" title="Appendix C. GPSBabe
 </p><p>
 For a list of fields, see the style/tabsep.style file in the GPSBabel source
 distribution.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_baroiq"></a>Brauniger IQ Series Barograph Download (baroiq)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_baroiq"></a>Brauniger IQ Series Barograph Download (baroiq)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>Serial download protocol for the Brauniger IQ series of
+        </p></li></ul></div><p>Serial download protocol for the <a href="http://www.brauniger.com" target="_top">Brauniger</a> IQ series of
 barograph recording flight instruments.  This format creates a 
 track of altitude vs time which can be merged with a GPS track 
-of the same flight to create a three dimensional IGC file. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cambridge"></a>Cambridge/Winpilot glider software (cambridge)</h2></div></div></div><p>
+of the same flight to create a three dimensional IGC file. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cambridge"></a>Cambridge/Winpilot glider software (cambridge)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p>Support for Cambridge/Winpilot flight analysis and planning software for
-       glider pilots.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cst"></a>CarteSurTable data file (cst)</h2></div></div></div><p>
+</p><p>Support for 
+<a href="http://www.cambridge-aero.com/products.htm" target="_top">Cambridge</a> 
+and <a href="http://www.winpilot.com" target="_top"> Winpilot</a> 
+       flight analysis and planning software for glider pilots.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cst"></a>CarteSurTable data file (cst)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read routes
-        </p></li></ul></div><p>
-  </p><p> With this format we can read CarteSurTable data files.
-CarteSurTable is a shareware program widely used in France. The data
+        </p></li></ul></div><p> With this format we can read  <a href="http://phgiraud.free.fr/CarteSurTable/CarteSurTable.htm" target="_top">CarteSurTable</a> data files.
+ <a href="http://phgiraud.free.fr/CarteSurTable/CarteSurTable.htm" target="_top">CarteSurTable</a> is a shareware program widely used in France. The data
 inside have to be seen as a mixture of a waypoints list, one route and
-several tracks.  <a href="http://phgiraud.free.fr/CarteSurTable/CarteSurTable.htm" target="_top">phgiraud.free.fr</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cetus"></a>Cetus for Palm/OS (cetus)</h2></div></div></div><p>
+several tracks.  
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cetus"></a>Cetus for Palm/OS (cetus)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read tracks
-        </p></li></ul></div><p>
-  </p><p>Cetus GPS <a href="http://www.cetusgps.dk/" target="_top">www.cetusgps.dk</a> is a program for
+        </p></li></ul></div><p><a href="http://www.cetusgps.dk/" target="_top">Cetus GPS</a> is a program for
 Palm/OS.  Working with Ron Parker and Kjeld Jensen, we can now read
-and write files for that program.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_cetus_o_dbname"></a>dbname option</h3></div></div></div><p>
+and write files for that program.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_cetus_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name.
     </p><p>
 This option specifies the database name for the output file.  This name is
 not the same thing as the file name on your computer; this is the name that
 appears in the file browser on your handheld.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_cetus_o_appendicon"></a>appendicon option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_cetus_o_appendicon"></a><code class="option">appendicon</code> option</h3></div></div></div><p>
       Append icon_descr to description.
     </p><p>
 This option will add the icon description to the end of the waypoint
@@ -320,41 +412,45 @@ description on output.  This can be useful if the icon is used to convey
 important information about the waypoint.  For example, the icon might be 
 "found geocache" or "unfound geocache"; it might be useful to know that when
 looking at a list of icons in Cetus.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_coastexp"></a>CoastalExplorer XML (coastexp)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_coastexp"></a>CoastalExplorer XML (coastexp)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>This is the format used by CoastalExplorer (tm). The
+        </p></li></ul></div><p>This is the format used by <span class="productname">CoastalExplorer</span>™. The
 format is XML with items uniquely identified by Windows-style UUIDs.
 <a href="http://www.rosepointnav.com" target="_top">http://www.rosepointnav.com</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_csv"></a>Comma separated values (csv)</h2></div></div></div><p>
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_csv"></a>Comma separated values (csv)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p> There are a billion variants of Comma Separated Value
-data.  This is the one that makes Delorme S&amp;A Deluxe 9 happy. It's
+data.  This is the one that makes <a href="http://www.delorme.com" target="_top">Delorme</a> <span class="productname">S&amp;A Deluxe 9</span>™ happy. It's
 also a very simple program and useful for many other programs like
-spreadsheets.</p><p> CSV is also the correct format for Lowrance MapCreate,
+spreadsheets.</p><p> CSV is also the correct format for 
+       <span class="productname">Lowrance MapCreate</span>™,
 their commercial mapping program, or GDM6 (their free waypoint
 manager) for iFinder which is available at <a href="http://www.lowrance.com/Software/GDM6/Default.asp" target="_top">lowrance.com</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_compegps"></a>CompeGPS data files (.wpt/.trk/.rte) (compegps)</h2></div></div></div><p>
+         </p><p>
+       On write, this format writes simple "latitude, longitude" pairs, but 
+on read it  will read anything supported by our <a href="#style_def_lathuman" title="LAT_HUMAN_READABLE">human readable</a> definition.
+    </p><p>
+       For something-separated data that has headers identifying the various
+       fields, see our <a href="#fmt_unicsv" title="Universal csv with field structure in first line (unicsv)">universal csv</a> format.
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_compegps"></a>CompeGPS data files (.wpt/.trk/.rte) (compegps)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
-These data files are "character" separated text files like
+<span class="productname">CompeGPS</span>™ data files are "character" separated text files like
 the pcx format. "Character" means special data lines can have their
 own separator.
 </p><p> 
@@ -363,11 +459,11 @@ supported import/export format for waypoints, routes and tracks.
 </p><p> 
 For more information please have a look at 
 <a href="http://www.compegps.com" target="_top">http://www.compegps.com</a>
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
     </p><p>
 This option specifies the default icon name on output.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_index"></a>index option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of route/track to write (if more the one in source).
     </p><p>
 Because this format supports only one route or track, this option may be used 
@@ -375,36 +471,36 @@ on output to select a single route or track from a collection of routes and
 tracks read from a more expressive format.  If you have, say, a 
 <a href="#fmt_gpx" title="GPX XML (gpx)">gpx</a> file that contains two routes, you may
 use this option to write them one at a time to individual files.
-</p><pre class="screen">gpsbabel -i gpx -f routes.gpx -o compegps,index=1 -F route1.txt -o compegps,index=2 -F route2.txt</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_radius"></a>radius option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f routes.gpx -o compegps,index=1 -F route1.txt -o compegps,index=2 -F route2.txt</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_radius"></a><code class="option">radius</code> option</h3></div></div></div><p>
       Give points (waypoints/route points) a default radius (proximity).
     </p><p>
 This option specifies the default proximity for waypoints and route points.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_snlen"></a>snlen option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_compegps_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Length of generated shortnames (default 16).
     </p><p>
 This option specifies the default length for short names generated on output.
 The default length is 16.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_copilot"></a>CoPilot Flight Planner for Palm/OS (copilot)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_copilot"></a>CoPilot Flight Planner for Palm/OS (copilot)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p> This code is mostly intended to convert CoPilot Flight
-Planner for Palmd/OS atabases into other formats.  You probably should
+        </p></li></ul></div><p> This code is mostly intended to convert  <a href="http://xcski.com/~ptomblin/CoPilot/" target="_top">CoPilot Flight
+Planner for Palm/OS"</a> databases into other formats.  You probably should
 not use this to write CoPilot databases, although the code is there,
-because GPSBabel doesn't convert magnetic declination values.</p><p> Questions, bug reports, etc, to ptomblin at
+because GPSBabel doesn't convert magnetic declination values.</p><p>This version now reads all CoPilot file versions up to 4, but only
+writes version 4 files.  If you have a need for a version flag, please let
+me know.</p><p> Questions, bug reports, etc, to ptomblin at
 xcski.com</p><p>
             <a href="http://xcski.com/~ptomblin/CoPilot/" target="_top">http://xcski.com/~ptomblin/CoPilot/</a> 
 and <a href="http://navaid.com/CoPilot/" target="_top">http://navaid.com/CoPilot</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_coto"></a>cotoGPS for Palm/OS (coto)</h2></div></div></div><p>
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_coto"></a>cotoGPS for Palm/OS (coto)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read tracks
-        </p></li></ul></div><p>
-  </p><p> 
-This format supports <span class="productname">cotoGPS</span>™, a Palm GPS program. 
+        </p></li></ul></div><p> 
+This format supports <span class="productname">cotoGPS</span>™, a <span class="productname">Palm</span>™ GPS program. 
 It can read both track and marker (waypoint) files. It is currently unable 
 to write track files, so only marker files can be written. The marker
 categories are written to and read from the icon description. The 'Not
@@ -418,17 +514,16 @@ of the cotoGPS track format to the notes field.
 Contributed by Tobias Minich.
 </p><p>
 <a href="http://core.de/~coto/projects/cotogps/" target="_top">cotoGPS</a>
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_coto_o_zerocat"></a>zerocat option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_coto_o_zerocat"></a><code class="option">zerocat</code> option</h3></div></div></div><p>
       Name of the 'unassigned' category.
     </p><p>
 This option specifies a name for the "Not Assigned" category in the Palm
 database.  The default is "Not Assigned".
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_custom"></a>Custom "Everything" Style (custom)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_custom"></a>Custom "Everything" Style (custom)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
@@ -438,45 +533,43 @@ for debugging purposes when developing a new format module for GPSBabel.
 To understand the contents of this file, look at the 
 <code class="filename">style/custom.style</code> file in the GPSBabel source
 distribution as well as <a href="#Styles" title="Appendix C. GPSBabel XCSV Style Files">Appendix C, <i>GPSBabel XCSV Style Files</i></a>.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_axim_gpb"></a>Dell Axim Navigation System (.gpb) file format (axim_gpb)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_axim_gpb"></a>Dell Axim Navigation System (.gpb) file format (axim_gpb)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read tracks
         </p></li></ul></div><p>
-  </p><p>
  This format reads the binary (.gpb) track logs recorded on 
Dell Axim Navigation Systems. 
<a href="http://www.dell.com" target="_top">Dell</a> Axim Navigation Systems. 
 </p><p>
   This is a read-only format for now as the format was reverse
   engineered and there are many unknown bytes.  We can successfully
   extract the common GPS data.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_an1"></a>DeLorme .an1 (drawing) file (an1)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_an1"></a>DeLorme .an1 (drawing) file (an1)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
-          read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
+          write tracks
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
-This format supports the DeLorme ".an1" drawing file format.  It can 
+        </p></li></ul></div><p> 
+This format supports the <a href="http://www.delorme.com" target="_top">DeLorme</a> ".an1" drawing file format.  It can 
 currently be used to either read or write drawing files.  If you use 
 this format to create drawing files with routes or waypoints from another 
 source, by default it will create "Red Flag" symbols for waypoints, and 
 thick red lines for routes or tracks.  It is possible to merge two drawing 
 layers by doing something like this:
-</p><pre class="screen">gpsbabel -i an1 -f one.an1 -f two.an1 -o an1 -F merged.an1</pre><p> 
+</p><p><strong class="userinput"><code>gpsbabel -i an1 -f one.an1 -f two.an1 -o an1 -F merged.an1</code></strong></p><p> 
 In this case, the merged data will contain all of the
 properties of the original data.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_type"></a>type option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_type"></a><code class="option">type</code> option</h3></div></div></div><p>
       Type of .an1 file.
     </p><p> This option specifies the type of the drawing layer
 to be created.  The supported values are "drawing", "road", "trail",
 "waypoint", or "track".  If you do not specify a type, the default
 will be either the type of the previous an1 file or "drawing" if there
 is no previous file. This lets you merge, for example, two road layers
-without having to specify "type=road" for the output.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_road"></a>road option</h3></div></div></div><p>
+without having to specify "type=road" for the output.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_road"></a><code class="option">road</code> option</h3></div></div></div><p>
       Road type changes.
     </p><p>
 If you are creating a road layer, you may use the "road" option, which 
@@ -489,7 +582,7 @@ GPSBabel defaults to creating editable roads.  These are routed just like
 local roads, but may be edited with the drawing tools in Street Atlas.
 </p><p> 
 This option has a special format that is best demonstrated by example:
-</p><pre class="screen">"road=I-599!limited!Beecher St.!major" </pre><p>
+</p><pre class="screen"> "road=I-599!limited!Beecher St.!major" </pre><p>
 This option will cause any road named "I-599" to become a limited-access 
 highway and any road named "Beecher St." to become a major connector.  Note 
 that roads that have had their types changed in this way are not editable 
@@ -502,14 +595,14 @@ There is a tutorial on
 <a href="http://www.gpsbabel.org/formats/delorme-new-interstate/" target="_top">how 
 to create an onramp for a limited access highway in Street Atlas USA 
 using GPSBabel.</a>
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_nogc"></a>nogc option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_nogc"></a><code class="option">nogc</code> option</h3></div></div></div><p>
       Do not add geocache data to description.
     </p><p>
 If your original data contains geocaching-specific information such as 
 difficulty and terrain, GPSBabel will automatically include that information 
 in the waypoint descriptions in the generated drawing file.  If you do not 
 want that, specify the "nogc" option on the command line:
-</p><pre class="screen">gpsbabel -i gpx -f 12345.gpx -o an1,nogc -F 12345.an1</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f 12345.gpx -o an1,nogc -F 12345.an1</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Symbol to use for point data.
     </p><p>
 This option allows you to specify which symbol to use for points that 
@@ -517,12 +610,12 @@ don't have a symbol already.  It defaults to "Red Flag" but it accepts
 any symbol name you can put in a DeLorme export file.  To find the name 
 of a specific symbol in Street Atlas, let the mouse pointer hover over 
 it for a few seconds and the name will be displayed.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_color"></a>color option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_color"></a><code class="option">color</code> option</h3></div></div></div><p>
       Color for lines or mapnotes.
     </p><p>This option allows you to specify the color for
 line or mapnote data.  It accepts color names of the form "#FF0000" (red) or any
 of the color names from the Cascading Style Sheets (CSS)
-specification.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_zoom"></a>zoom option</h3></div></div></div><p>
+specification.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_zoom"></a><code class="option">zoom</code> option</h3></div></div></div><p>
       Zoom level to reduce points.
     </p><p>
 This option specifies at what zoom level Street Atlas will begin showing 
@@ -530,7 +623,7 @@ reduced versions of your symbols. The default is 10.  Setting zoom to 0 will
 disable this feature.  Setting it to anything but the default will override 
 the zoom level specified on any waypoints that were read from an existing 
 an1 file; this is by design.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_wpt_type"></a>wpt_type option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_wpt_type"></a><code class="option">wpt_type</code> option</h3></div></div></div><p>
       Waypoint type.
     </p><p>
 This option specifies how to represent point data in the draw file.  
@@ -543,29 +636,27 @@ and full path, of image files in a format that works with your DeLorme
 product.  Note that this means that the .an1 file you generate will not work
 on any computer that does not have those images in the same place; this is 
 part of the design of the an1 format and cannot be avoided.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_radius"></a>radius option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_an1_o_radius"></a><code class="option">radius</code> option</h3></div></div></div><p>
       Radius for circles.
     </p><p>
 If the waypoint type is "circle", the "radius" option specifies
 the radius of the circles.  By default, this is in miles, but it may be
 specified in kilometers by adding a 'k'.  The default radius is 1/10 mile.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpl"></a>DeLorme GPL (gpl)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpl"></a>DeLorme GPL (gpl)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li></ul></div><p>
-  </p><p>This is the 'gpl' format as used in Delorme mapping
+        </p></li></ul></div><p>This is the 'gpl' format as used in Delorme mapping
 products.  It is a track format and contains little more than the
 tracklog of a GPS that was attached while driving. <a href="http://www.frontiernet.net/~werner/gps/" target="_top">frontiernet.net</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_saplus"></a>DeLorme Street Atlas Plus (saplus)</h2></div></div></div><p>
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_saplus"></a>DeLorme Street Atlas Plus (saplus)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p> This format is for Street Atlas USA 2004 Plus.
+</p><p> This format is for Delorme Street Atlas USA 2004 Plus and later.
 </p><p> For geocachers importing data from a tool like GSAK or
 Spinner, import the file twice in XData.  One will create a file with
 the Cache description as a hyperlink on the flag. This can clutter up
@@ -576,33 +667,32 @@ assign field types, check the circle above Full Name and then next.
 The second time you import the file do not check any circle and in the
 second to last column, change URL to none and then click next. Use the
 same name you used the first time but add -Flag to it.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_saroute"></a>DeLorme Street Atlas Route (saroute)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_saroute"></a>DeLorme Street Atlas Route (saroute)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read tracks
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
 This format reads route files from many Delorme mapping products.
 It supports the anr, rte, and rtd formats as either tracks or
 routes.</p><p> All options only apply to route files from newer (anr)
 versions of DeLorme software; older versions didn't store the turn
 information with the route.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_turns_important"></a>turns_important option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_turns_important"></a><code class="option">turns_important</code> option</h3></div></div></div><p>
       Keep turns if simplify filter is used.
     </p><p> This option only makes sense in
 conjunction with the 'simplify' filter.  It ensures that the route
 simplification process will remove the points corresponding to turns
 only after it has removed all other route points.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_turns_only"></a>turns_only option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_turns_only"></a><code class="option">turns_only</code> option</h3></div></div></div><p>
       Only read turns; skip all other points.
     </p><p> This option causes GPSBabel to read only the
 waypoints associated with named turns.  This should create a list of
-waypoints that correspond to the itinerary from Street Atlas.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_split"></a>split option</h3></div></div></div><p>
+waypoints that correspond to the itinerary from Street Atlas.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_split"></a><code class="option">split</code> option</h3></div></div></div><p>
       Split into multiple routes at turns.
     </p><p>This option causes GPSBabel to create separate
 routes for each street, creating a new route at each turn point.  For
 obvious reasons, 'split' cannot be used at the same time as the
-'turns_only' or 'turns_important' options.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_controls"></a>controls option</h3></div></div></div><p>
+'turns_only' or 'turns_important' options.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_controls"></a><code class="option">controls</code> option</h3></div></div></div><p>
       Read control points as waypoint/route/none.
     </p><p>This option lets you read the control points
 (start, end, vias, and stops) for your route as well as the route
@@ -612,47 +702,47 @@ control points as waypoints, or 'route', which creates an extra route
 named 'control points' containing just the control points in order.
 Note that if your goal is to create an arc or other CSV file, you
 should use 'none' (or not use this option, which is the same
-thing.)</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_times"></a>times option</h3></div></div></div><p>
+thing.)</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_saroute_o_times"></a><code class="option">times</code> option</h3></div></div></div><p>
       Synthesize track times.
     </p><p>This option causes GPSBabel to read the route as if
 it were a track, synthesizing times starting from the current time, using
 the estimated travel times specified in your route file (you can change your
-travel speeds in the DeLorme product you used to create the route file.)</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xmap"></a>DeLorme XMap HH Native .WPT (xmap)</h2></div></div></div><p>
+travel speeds in the DeLorme product you used to create the route file.)</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xmap"></a>DeLorme XMap HH Native .WPT (xmap)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p>Delorme TopoUSA/XMap Conduit is one of the billion CSV
-variants mentioned above.  It's just like S&amp;A with the addition of
+</p><p>Delorme TopoUSA/XMap Conduit is one of the bazillion 
+<a href="#fmt_csv" title="Comma separated values (csv)">CSV variants</a> 
+variants mentioned above.  It's just like Delorme Streets &amp; Atlas with the addition of
 a completely pointless line at the beginning and end of the file. This
 is the format used to hot-sync to XMap from withing TopoUSA. Done with
-help of Dan Edwards.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xmap2006"></a>DeLorme XMap/SAHH 2006 Native .TXT (xmap2006)</h2></div></div></div><p>
+help of Dan Edwards.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xmap2006"></a>DeLorme XMap/SAHH 2006 Native .TXT (xmap2006)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p>Delorme XMap2006 Conduit is just like XMap, except there are 
+</p><p>Delorme XMap2006 Conduit is just like 
+<a href="#fmt_xmap" title="DeLorme XMap HH Native .WPT (xmap)">XMap</a> 
+, except there are 
        no spaces between fields and the coordinate format is slightly 
        different. The completely pointless header and footer lines 
        are the same, at least. Use this to create the XMapHHWptsSend.txt 
-       file needed to sync to Street Atlas Handheld 2006.</p><p>Note that in order to keep from creating duplicates on your handheld, you must first remove the file "XMapWptsDB" from your handheld, restart SAHH2006 on the handheld to create an empty database, and THEN sync the new file. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xmapwpt"></a>DeLorme XMat HH Street Atlas USA .WPT (PPC) (xmapwpt)</h2></div></div></div><p>
+       file needed to sync to Street Atlas Handheld 2006.</p><p>Note that in order to keep from creating duplicates on your handheld, you must first remove the file "XMapWptsDB" from your handheld, restart SAHH2006 on the handheld to create an empty database, and THEN sync the new file. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_xmapwpt"></a>DeLorme XMat HH Street Atlas USA .WPT (PPC) (xmapwpt)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
 Delorme XMapHandHeld Street Atlas USA is another of the
-billion CSV variants.  This is the format used by XmapHH SA USA on (at
-least) PocketPC O/S. 
+billion <a href="#fmt_csv" title="Comma separated values (csv)"> CSV variants</a>.  
+This is the format used by XmapHH SA USA on (at least) PocketPC O/S. 
 </p><p> 
 This XMap is not the same as the simpler 
 <a href="#fmt_xmap" title="DeLorme XMap HH Native .WPT (xmap)">XMap</a> format, which is used with Topo USA 4.0
@@ -676,13 +766,13 @@ of this chapter.
 It should also be noted that <span class="emphasis"><em>reading</em></span> multiple files 
 is indeed possible, but if you have more than a few points, it can be a task. 
 For example:
-</p><pre class="screen">gpsbabel -i xmapwpt -f Xmap1.wpt -f Xmap2.wpt -o mapsend -F mapsend.wpt</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i xmapwpt -f Xmap1.wpt -f Xmap2.wpt -o mapsend -F mapsend.wpt</code></strong></p><p>
 will read the two Xmap .wpt files and write one mapsend file.  This
 is fine for a small handful of points, but could be quite cumbersome
 for folks like me who have 100+ waypoints loaded into XMap.  For *nix
 folks, something as simple as:
-</p><pre class="screen">cat *.wpt &gt; /tmp/foo.wpt
-gpsbabel -i xmapwpt -f foo.wpt -o mapsend -F mapsend.wpt </pre><p>
+</p><p><strong class="userinput"><code>cat *.wpt &gt; /tmp/foo.wpt</code></strong>
+<strong class="userinput"><code>gpsbabel -i xmapwpt -f foo.wpt -o mapsend -F mapsend.wpt </code></strong></p><p>
 will do the trick just fine.  
 </p><pre class="programlisting">
 #!/full/path/to/perl
@@ -691,9 +781,11 @@ $TARGETDIR = @ARGV[1];
 $FILENAME  = @ARGV[2];
 
 if (! $FILENAME) {
-    print "Usage: xmap_split.pl INPUT_FILE OUTPUT_DIRECTORY FILENAME_BASE\n";
+    print "Usage: xmap_split.pl " . 
+       "INPUT_FILE OUTPUT_DIRECTORY FILENAME_BASE\n";
     print " (i.e. xmapl_split.pl points.wpt /tmp/points GPSB)\n";
-    print " (created GPSB0001-GPSBXXXX in /tmp/points/ from points.wpt)\n";
+    print " (created GPSB0001-GPSBXXXX " .
+       " in /tmp/points/ from points.wpt)\n";
     exit;
 }
 
@@ -703,7 +795,8 @@ while (&lt;INFILE&gt;) {
     $lc++;
     $filename = sprintf("%s/Gpsb%04d.wpt", $TARGETDIR, $lc);
 
-    open (OUTFILE, "&gt;$filename") || die "Cannot open $filename for write!\n";
+    open (OUTFILE, "&gt;$filename") || 
+       die "Cannot open $filename for write!\n";
 
     print OUTFILE $_;
 
@@ -712,27 +805,23 @@ while (&lt;INFILE&gt;) {
 
 exit;
 
-</pre><p>Contributed to GPSBabel by Alex Mottram.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_easygps"></a>EasyGPS binary format (easygps)</h2></div></div></div><p>
+</pre><p>Contributed to GPSBabel by Alex Mottram.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_easygps"></a>EasyGPS binary format (easygps)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p> This is the binary file format used by EasyGPS.  This
+        </p></li></ul></div><p> This is the binary file format used by  <a href="http://www.easygps.com/" target="_top">EasyGPS</a>
 format is seemingly being phased out in favor of GPX in newer versions
 of EasyGPS, but this allows conversions to and from the old binary
 .loc format.
-</p><p>
-            <a href="http://www.easygps.com/" target="_top">http://www.easygps.com/</a>
-         </p><p> Information about and sketchy code to implement this file
+</p><p> Information about and sketchy code to implement this file
 format were provided by Eric Cloninger.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_igc"></a>FAI/IGC Flight Recorder Data Format (igc)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_igc"></a>FAI/IGC Flight Recorder Data Format (igc)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
 FAI/IGC Data File -- Used by the international gliding
 community to record gliding flights.  IGC files can be converted to
 and from tracks representing recorded flights, and routes representing
@@ -761,36 +850,36 @@ will not be accepted as proof of a flight.
 </p><p>
 A track stored in another format (GPX for example) representing a recorded
 flight can be converted into an IGC file:
-</p><pre class="screen">gpsbabel -i gpx -f mytrk.gpx -o igc -F myflight.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f mytrk.gpx -o igc -F myflight.igc</code></strong></p><p>
 If multiple track segments are provided in the input file, the one with the
 most points will be used.
 </p><p>
 A route stored in another format representing a task declaration can be
 converted into an IGC file:
-</p><pre class="screen">gpsbabel -i gpx -f myrte.gpx -o igc -F mytask.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f myrte.gpx -o igc -F mytask.igc</code></strong></p><p>
 A route and a track in other formats can be included into a single IGC file:
-</p><pre class="screen">gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -o igc -F myflight.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -o igc -F myflight.igc</code></strong></p><p>
 A similar result can be obtained by downloading the track log and routes
 directly from a GPS device connected to a PC.  For example to create an IGC
 file from data recorded in a Garmin GPS connected to the first serial port of
 a PC running Linux:
-</p><pre class="screen">gpsbabel -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</code></strong></p><p>
 For Windows operating systems:
-</p><pre class="screen">gpsbabel -t -r -i garmin -f com1 -o igc -F myflight.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -t -r -i garmin -f com1 -o igc -F myflight.igc</code></strong></p><p>
 A waypoint file in another format containing a waypoint whose short name is
 "PILOT" can be merged into an IGC file.  The description field of the waypoint
 will be used for the pilot name in the IGC file header:
-</p><pre class="screen">gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -f mywpt.gpx -o igc -F myflight.igc
-gpsbabel -w -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -f mywpt.gpx -o igc -F myflight.igc
+gpsbabel -w -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</code></strong></p><p>
 Some formats such as GPX allow routes, tracks and waypoints to exist in the
 same file and can be used to fully populate an IGC file:
-</p><pre class="screen">gpsbabel -i gpx -f myall.gpx -o igc -F myflight.igc</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_igc_convfrom"></a>Converting from IGC format</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f myall.gpx -o igc -F myflight.igc</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_igc_convfrom"></a>Converting from IGC format</h3></div></div></div><p>
 Data in an IGC file can be converted into other formats.  For example to
 generate OziExplorer files containing tracks representing the recorded
 flight (myozi.plt) and routes representing declared tasks (myozi.rte):
-</p><pre class="screen">gpsbabel -i igc -f myflight.igc -o ozi -F myozi</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i igc -f myflight.igc -o ozi -F myozi</code></strong></p><p>
 Or to GPX format:
-</p><pre class="screen">gpsbabel -i igc -f myflight.igc -o gpx -F myflight.gpx</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i igc -f myflight.igc -o gpx -F myflight.gpx</code></strong></p><p>
 Header information from the IGC file will be written to the description field
 of the track(s).
 </p><p>
@@ -800,19 +889,19 @@ tracks.  The latitude, longitude and timestamps in the tracks will be identical.
 </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_igc_merge"></a>Merging into IGC format</h3></div></div></div><p>
 A route stored in another format can be merged with an existing IGC file that
 has no task declaration, to generate a new IGC file with a task declaration:
-</p><pre class="screen">gpsbabel -i igc -f myflight.igc -i gpx -f myrte.gpx -o igc -F mynew.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i igc -f myflight.igc -i gpx -f myrte.gpx -o igc -F mynew.igc</code></strong></p><p>
 A two dimensional (lat/lon) track recorded during a flight by a GPS receiver
 can be merged with a one dimensional (altitude) track recorded during the same
 flight by a barograph instrument.  The result is a three dimensional IGC file
 representing the flight:
-</p><pre class="screen">gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc -F my3D.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc -F my3D.igc</code></strong></p><p>
 The same can be acheived by downloading directly from a barograph instrument
 supported by GPSBabel.  For example with a Brauniger IQ Comp GPS variometer:
-</p><pre class="screen">gpsbabel -i baroiq -f /dev/ttyS0 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i baroiq -f /dev/ttyS0 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</code></strong></p><p>
 or:
-</p><pre class="screen">gpsbabel -i baroiq -f com1 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i baroiq -f com1 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</code></strong></p><p>
 (Documentation contributed by Chris Jones, Aug 2004)
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_igc_o_timeadj"></a>timeadj option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_igc_o_timeadj"></a><code class="option">timeadj</code> option</h3></div></div></div><p>
       (integer sec or 'auto') Barograph to GPS time diff.
     </p><p>
 Sometimes there is a discrepancy between the internal clock in the barograph
@@ -820,31 +909,30 @@ instrument and GPS time which can result in the altitude and ground positions
 not correlating correctly.  This can be corrected manually by passing the time
 difference in seconds between the two time domains through the "timeadj"
 parameter.  This can be any positive or negative integer:
-</p><pre class="screen">gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=27 -F my3D.igc</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=27 -F my3D.igc</code></strong></p><p>
 GPSBabel can also attempt to deduce the time difference automatically.  This
 is done by comparing the time that it thinks that you landed on the GPS track
 and the barograph and adjusting accordingly:
-</p><pre class="screen">gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpssim"></a>Franson GPSGate Simulation (gpssim)</h2></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</code></strong></p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpssim"></a>Franson GPSGate Simulation (gpssim)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           write routes
         </p></li></ul></div><p>
-  </p><p>
         This is a write-only format used to feed waypoints, tracks, and routes
         into <a href="http://franson.com/" target="_top">Franson Technolgies'</a>
         <a href="http://franson.com/gpsgate/" target="_top">GpsGate simulator</a>.
   </p><p>
         To use these files in GpsGate, select 'Simulator' and then
         "File-&gt;Open".
-  </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpssim_o_wayptspd"></a>wayptspd option</h3></div></div></div><p>
+  </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpssim_o_wayptspd"></a><code class="option">wayptspd</code> option</h3></div></div></div><p>
       Default speed for waypoints (knots/hr).
     </p><p>
   This option specifies the speed of the simulation in knots.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpssim_o_split"></a>split option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpssim_o_split"></a><code class="option">split</code> option</h3></div></div></div><p>
       Split input into separate files.
     </p><p>When this option is specified, GPSBabel will split 
         split the output into multiple files using the output filename
@@ -852,16 +940,15 @@ and the barograph and adjusting accordingly:
 </p><table class="simplelist" border="0" summary="Simple list"><tr><td>mytrip-waypoints.gpssim - will contain the waypoints.</td></tr><tr><td>mytrip-track0000.gpssim - will contain the first track.</td></tr><tr><td>mytrip-track0001.gpssim - will contain the second track.</td></tr><tr><td>... and so on.</td></tr><tr><td>mytrip-route0000.gpssim - will contain the first route.</td></tr><tr><td>mytrip-route0001.gpssim - will contain the seconds route.</td></tr><tr><td>... and so on.</td></tr></table><p>
 </p><p>
 Valid values for this option are 0 (off) and 1 (on).  The default is '0'.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_fugawi"></a>Fugawi (fugawi)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_fugawi"></a>Fugawi (fugawi)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p> This was a requested CSV format, *not* the proprietary
-binary format used by Fugawi. Like any other CSV format, GPSBabel
+</p><p> This was a requested <a href="#fmt_csv" title="Comma separated values (csv)">CSV format</a>, and is <span class="emphasis"><em>not</em></span> the proprietary
+binary format used by <a href="http://www.fugawi.com" target="_top">Fugawi</a>. Like any other CSV format, GPSBabel
 cannot read tracks in this format, but converting a track into it and
 then importing as track in Fugawi works.</p><p> It is known to work with Fugawi V3.1.4.635. When
 importing/exporting waypoints, one has to specify the order of fields
@@ -869,68 +956,74 @@ as follows (names of fields may depend on the language used by
 Fugawi):</p><table class="simplelist" border="0" summary="Simple list"><tr><td> - Name</td></tr><tr><td> - Comment</td></tr><tr><td> - Description</td></tr><tr><td> - Latidude</td></tr><tr><td> - Longitude</td></tr><tr><td> - Altitude (metres)</td></tr><tr><td> - Date (yyyymmdd/yymmdd)</td></tr><tr><td> - Time of day (hhmmss)</td></tr></table><p> When importing tracks, use "[ignore]" instead of "Name",
 "Comment" and "Description".</p><p>
             <a href="http://www.fugawi.com/" target="_top">http://www.fugawi.com/</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin301"></a>Garmin 301 Custom position and heartrate (garmin301)</h2></div></div></div><p>
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin301"></a>Garmin 301 Custom position and heartrate (garmin301)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>This is a very simple format that
-is most useful for exporting data from a Garmin301 to other programs
+is most useful for exporting data from units that support heart rate
+data such as
+<span class="productname">Garmin Forerunner 301</span>™,
+<span class="productname">Garmin Forerunner 305</span>™, and
+<span class="productname">Garmin Edge 305</span>™, and
+to other programs
 for analysis.   It's a simple comma delimited format that includes the
 timestamp, 3D position information and heart rate so you can pull it
-into a spreadsheet or graphing program. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_glogbook"></a>Garmin Logbook XML (glogbook)</h2></div></div></div><p>
+into a spreadsheet or graphing program. </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_glogbook"></a>Garmin Logbook XML (glogbook)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li></ul></div><p>
-  </p><p>This is the XML format used by the Garmin Logbook product
-that ships with Forerunner and Foretrex.  <a href="http://www.garmin.com" target="_top">http://www.garmin.com</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gdb"></a>Garmin MapSource - gdb (gdb)</h2></div></div></div><p>
+        </p></li></ul></div><p>This is the XML format used by the Garmin Logbook product
+that ships with Forerunner and Foretrex.  
+As of early 2006, this program is apparently  been discontinued in favor of
+<a href="#fmt_gtrnctr" title="Garmin Training Centerxml (gtrnctr)">Garmin Training Center</a>.
+
+See: <a href="http://www.garmin.com" target="_top">http://www.garmin.com</a>  
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gdb"></a>Garmin MapSource - gdb (gdb)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
 Support for the "Garmin GPS Database" format used by
-default in MapSource versions since release 6.0. By default GPSBabel creates
+default in <span class="productname">MapSource</span>™ versions since release 6.0 of 
+that product. By default GPSBabel creates
 gdb files of version 2.  Version 2 is used in Mapsource 6.3 and 6.5.
 </p><p> 
 Garmin GPS database is an undocumented file format. The
 basic info for this module came from the existing MapSource
 conversion code.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gdb_o_cat"></a>cat option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gdb_o_cat"></a><code class="option">cat</code> option</h3></div></div></div><p>
       Default category on output (1..16).
     </p><p>
 This option specifies the default category for gdb output.  It should be a 
 number from 1 to 16.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gdb_o_ver"></a>ver option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gdb_o_ver"></a><code class="option">ver</code> option</h3></div></div></div><p>
       Version of gdb file to generate (1,2).
     </p><p>
 This option specifies the data format version for the output file.  Version
 2 is the default.  Currently, the only other valid value for this option is
 1.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gdb_o_via"></a>via option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gdb_o_via"></a><code class="option">via</code> option</h3></div></div></div><p>
       Drop route points that do not have an equivalent waypoint (hidden points).
     </p><p>
 This option instructs GPSBabel to drop hidden (calculated) points from 
 routes.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mapsource"></a>Garmin MapSource - mps (mapsource)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mapsource"></a>Garmin MapSource - mps (mapsource)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
 This format supports the Garmin <span class="productname">Mapsource</span>™
 product family.
 </p><p>
@@ -952,143 +1045,148 @@ all handled, but map sets are ignored.
 </p><p> 
 Information on the Garmin Mapsource format was provided by Ian Cowley and 
 Mark Bradley.  The code was implemented by Robert Lipe and Mark Bradley.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_snlen"></a>snlen option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Length of generated shortnames.
     </p><p>
 This option specifies the length of generated short names on output.  The 
 default is 10 characters.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_snwhite"></a>snwhite option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_snwhite"></a><code class="option">snwhite</code> option</h3></div></div></div><p>
       Allow whitespace synth. shortnames.
     </p><p>
 This option specifies whether to allow whitespace (space, tab, etc.) in 
 generated short names on output.  The default is to not allow whitespace.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsverout"></a>mpsverout option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsverout"></a><code class="option">mpsverout</code> option</h3></div></div></div><p>
       Version of mapsource file to generate (3,4,5).
     </p><p>
 This option specifies the format version for the output file.  The default
 is version 5, as noted above.  Supported versions are 3, 4, and 5.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsmergeout"></a>mpsmergeout option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsmergeout"></a><code class="option">mpsmergeout</code> option</h3></div></div></div><p>
       Merge output with existing file.
     </p><p>
 This option causes the output to be merged with a pre-existing output file.
 This allows MapSource sections that aren't handled by GPSBabel (e.g. map sets)
 to be preserved.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsusedepth"></a>mpsusedepth option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsusedepth"></a><code class="option">mpsusedepth</code> option</h3></div></div></div><p>
       Use depth values on output (default is ignore).
     </p><p>
 This option causes GPSBabel to write depth values for waypoints.  Most 
 input formats do not support depth values, so the default is to not write
 them.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsuseprox"></a>mpsuseprox option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsource_o_mpsuseprox"></a><code class="option">mpsuseprox</code> option</h3></div></div></div><p>
       Use proximity values on output (default is ignore).
     </p><p>
 This option causes GPSBabel to write proximity values for waypoints.  Most 
 input formats do not support proximity values, so the default is to not write
 them.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin_txt"></a>Garmin MapSource - txt (tab delimited) (garmin_txt)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin_txt"></a>Garmin MapSource - txt (tab delimited) (garmin_txt)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
 This is a textual format that contains nearly all of the information 
-contained in the MapSource main format, <a href="#fmt_gdb" title="Garmin MapSource - gdb (gdb)">GDB</a>.
+contained in the <span class="productname">MapSource</span>™ main format, <a href="#fmt_gdb" title="Garmin MapSource - gdb (gdb)">GDB</a>.
 This format also contains some computed values such as distances between 
 routepoints and trackpoints, speed, and course (heading).
 </p><p>
 The main goal of garmin_txt is to make aviation data more available. Because 
-MapSource supports only the export, GPSBabel gives you the possibility to 
-bring aviation data into MapSource.
+<span class="productname">MapSource</span>™ supports only the export, GPSBabel gives you the possibility to 
+bring aviation data into <span class="productname">MapSource</span>™.
 </p><p>
-During the export with MapSource, some fields are written using local settings
-of MapSource and Windows. These include grid format, gps datum, distance and
+During the export with <span class="productname">MapSource</span>™, some fields are written using local settings
+of <span class="productname">MapSource</span>™ and Windows. These include grid format, gps datum, distance and
 temperature units, and the representation of date and time fields. GPSBabel 
 tries to read all items automatically. Problems with date and time format can 
 be solved with the 'date' and 'time' options.
-</p><div class="example"><a id="all_garmin_txt_options"></a><p class="title"><b>Example 3.1. Command showing garmin_txt output with all options</b></p><pre class="screen">gpsbabel -i garmin_txt,date="MM/DD/YYYY",time="hh:mm:ss xx" -f in.txt -o garmin_txt,date="DD.MM.YYYY",datum="WGS 72",dist=m,prec=6,temp=c,time="HH:mm:ss",utc=+2 -F out.txt</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_date"></a>date option</h3></div></div></div><p>
+</p><div class="example"><a id="all_garmin_txt_options"></a><p class="title"><b>Example 3.1. Command showing garmin_txt output with all options</b></p><div class="example-contents"><p><strong class="userinput"><code>gpsbabel -i garmin_txt,date="MM/DD/YYYY",time="hh:mm:ss xx" -f in.txt -o garmin_txt,date="DD.MM.YYYY",datum="WGS 72",dist=m,prec=6,temp=c,time="HH:mm:ss",utc=+2 -F out.txt</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_date"></a><code class="option">date</code> option</h3></div></div></div><p>
       Read/Write date format (i.e. yyyy/mm/dd).
     </p><p>
 This option specifies the input and output format for the date.  The format 
 is written similarly to those in Windows.  An example format is "YYYY/MM/DD".
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_datum"></a>datum option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_datum"></a><code class="option">datum</code> option</h3></div></div></div><p>
       GPS datum (def. WGS 84).
     </p><p>
 This option specifies the datum to be used on output.  Valid values for this 
 option are listed in <a href="#Datums" title="Appendix A. Supported Datums">Appendix A, <i>Supported Datums</i></a>.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_dist"></a>dist option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_dist"></a><code class="option">dist</code> option</h3></div></div></div><p>
       Distance unit [m=metric, s=statute].
     </p><p>
 This option specifies the unit to be used when outputting distance
 values.  Valid values are M for metric (m/km/kph) or S for statute
 (ft/mi/mph).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_prec"></a>prec option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_grid"></a><code class="option">grid</code> option</h3></div></div></div><p>
+      Write position using this grid..
+    </p><p>
+  This value specifies the grid to be used on write.
+</p><div class="table"><a id="garmin_grid"></a><p class="title"><b>Table 3.1. Grid values for garmin_txt</b></p><div class="table-contents"><table summary="Grid values for garmin_txt" border="1"><colgroup><col /><col /><col /><col /></colgroup><thead><tr><th># idx</th><th>short</th><th>file-header</th><th>sample</th></tr></thead><tbody><tr><td>0</td><td>ddd</td><td>Lat/Lon hddd.ddddd</td><td>    S26.25333 E27.92333</td></tr><tr><td>1</td><td>dm</td><td>Lat/Lon hddd°mm.mm</td><td>N33 56.539 W118 24.471</td></tr><tr><td>2</td><td>dm</td><td>Lat/Lon hddd°mm'ss.s</td><td>S25 25 26.8 E28 06 07.3</td></tr><tr><td>3</td><td>bng</td><td>British National Grid</td><td>TQ 18919 69392</td></tr></tbody></table></div></div><br class="table-break" /><p>
+  Idx or short are valid params for this option.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_prec"></a><code class="option">prec</code> option</h3></div></div></div><p>
       Precision of coordinates.
     </p><p>
 This option specifies the precision to be used when writing coordinate values.
 Precision is the number of digits after the decimal point.  The default
 precision is 3.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_temp"></a>temp option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_temp"></a><code class="option">temp</code> option</h3></div></div></div><p>
       Temperature unit [c=Celsius, f=Fahrenheit].
     </p><p>
 This option specifies the unit to be used when writing temperature values.
 Valid values are C for Celsius or F for Fahrenheit.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_time"></a>time option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_time"></a><code class="option">time</code> option</h3></div></div></div><p>
       Read/Write time format (i.e. HH:mm:ss xx).
     </p><p>
 This option specifies the input and output format for the time.  The format 
 is written similarly to those in Windows.  An example format is "hh:mm:ss xx".
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_utc"></a>utc option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_txt_o_utc"></a><code class="option">utc</code> option</h3></div></div></div><p>
       Write timestamps with offset x to UTC time.
     </p><p>
 This option specifies the local time zone to use when writing times.  It
 is specified as an offset from Universal Coordinated Time (UTC) in hours.  
 Valid values are from -23 to +23.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_pcx"></a>Garmin PCX5 (pcx)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_pcx"></a>Garmin PCX5 (pcx)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> Garmin documents only PCX5, an older format limited to
+        </p></li></ul></div><p> Garmin documents only PCX5, an older format limited to
 the lame NMEA six-character waypoint names that's treated as a
 second-class citizien in current versions of MapSource.  In Mapsource,
 use file-&gt;import to read these files.  If you name the files *.wpt,
-Mapsource will find them easier.
+Mapsource will find them more easily.
 </p><p> In general, you should prefer the "mapsource" file format
 to this one.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pcx_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><p>This format has been extended to handle many - but not all - 
+       files from <a href="http://www.gpsu.co.uk/index.html" target="_top">GPS Utility</a>.  If you encounter something that GPSBabel does not handle well, use
+the free version of GPSUtil to read it and save as something more common.
+       </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pcx_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pcx_o_cartoexploreur"></a>cartoexploreur option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pcx_o_cartoexploreur"></a><code class="option">cartoexploreur</code> option</h3></div></div></div><p>
       Write tracks compatible with Carto Exploreur.
-    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin_poi"></a>Garmin POI database (garmin_poi)</h2></div></div></div><p>
+    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin_poi"></a>Garmin POI database (garmin_poi)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>The <a href="http://www.garmin.com/support/agree.jsp?id=927" target="_top">Garmin POI loader</a> 
 loads custom points of interest into certain models of
 Garmin GPS receivers.  (As of this writing, only the models introduced
 in 2005 and later are supported.  See Garmin's site for more info.)
-This is the format readable that that program.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin"></a>Garmin serial/USB protocol (garmin)</h2></div></div></div><p>
+This is the format readable that that program.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_garmin"></a>Garmin serial/USB protocol (garmin)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
        GPSBabel supports a wide variety of Garmin hardware via serial
        on most operating systems and USB on Windows, Linux, and OS X.
 </p><p> 
@@ -1096,10 +1194,12 @@ This is the format readable that that program.</p></div><div class="section" lan
        mode" in setup and that nothing else (PDA hotsync programs, gpsd,
        getty, pppd, etc.) is using the serial port.
 </p><p> 
-       Supported models on USB include 
-       </p><table class="simplelist" border="0" summary="Simple list"><tr><td>Edge 205</td><td>Foretrex 201</td><td>GPSMAP 60CS</td><td>Nuvi 350<sup>[<a href="#ftn.gpx">1</a>]</sup></td><td>StreetPilot 7500</td></tr><tr><td>Edge 305</td><td>Foretrex 301</td><td>GPSMAP 60CSX</td><td>Nuvi 360<sup>[<a href="#ftn.gpx">1</a>]</sup></td><td>StreetPilot c310</td></tr><tr><td>eTrex Legend C</td><td>GPSMAP 195</td><td>GPSMAP 60CX</td><td>Quest</td><td>StreetPilot c320</td></tr><tr><td>eTrex LegendCX</td><td>GPSMAP 276C</td><td>GPSMAP 76C</td><td>Quest II</td><td>StreetPilot c330</td></tr><tr><td>eTrex Venture C</td><td>GPSMAP 295</td><td>GPSMAP 76CS</td><td>StreetPilot 2610</td><td>StreetPilot c340</td></tr><tr><td>eTrex Venture CX</td><td>GPSMAP 296C</td><td>GPSMAP 76CSX</td><td>StreetPilot 2620</td><td>StreetPilot c510<sup>[<a href="#ftn.gpx">1</a>]</sup></td></tr><tr><td>eTrex VistaC</td><td>GPSMAP 378</td><td>GPSMAP 76CX</td><td>StreetPilot 2650</td><td>StreetPilot c530<sup>[<a href="#ftn.gpx">1</a>]</sup></td></tr><tr><td>eTrex Vista CX</td><td>GPSMAP 396</td><td>GPSMAP 96</td><td>StreetPilot 2720</td><td>StreetPilot c550<sup>[<a href="#ftn.gpx">1</a>]</sup></td></tr><tr><td>Forerunner 205</td><td>GPSMAP 478</td><td>GPSMAP 96C</td><td>StreetPilot 2730</td><td>StreetPilot i2</td></tr><tr><td>Forerunner 301</td><td>GPSMAP 496</td><td>Nuvi 300<sup>[<a id="gpx" href="#ftn.gpx">1</a>]</sup></td><td>StreetPilot 2820</td><td>StreetPilot i3</td></tr><tr><td>Forerunner 305</td><td>GPSMAP 60C</td><td>Nuvi 310<sup>[<a href="#ftn.gpx">1</a>]</sup></td><td>StreetPilot 7200</td><td>StreetPilot i5</td></tr></table><p>
-</p><p>and most serial units including:
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td>eMap</td><td>eTrex Vista</td><td>Geko 301</td><td>GPS III </td><td>StreetPilot III</td></tr><tr><td>eTrex Camo</td><td>eTrex Yellow</td><td>GPS 12CX </td><td>GPS III+ </td><td>StreetPilot III+</td></tr><tr><td>eTrex Legend</td><td>Forerunner 201</td><td>GPS 12Map </td><td>GPS II </td><td> </td></tr><tr><td>eTrex Summit</td><td>Foretrex 201</td><td>GPS 12 </td><td>GPS II+ </td><td> </td></tr><tr><td>eTrex Venture</td><td>Geko 201</td><td>GPS 12XL </td><td>GPS V</td><td> </td></tr></table><p>
+       Supported Garmin GPS receivers with USB include 
+       </p><table class="simplelist" border="0" summary="Simple list"><tr><td>Astro</td><td>GPSMAP 276C</td><td>GPSMAP 96C</td><td>StreetPilot 7200</td></tr><tr><td>Edge 205</td><td>GPSMAP 295</td><td>Nuvi 300<sup>[<a id="gpx" href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot 7500</td></tr><tr><td>Edge 305</td><td>GPSMAP 296C</td><td>Nuvi 310<sup>[<a href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot c310</td></tr><tr><td>eTrex Legend C</td><td>GPSMAP 378</td><td>Nuvi 350<sup>[<a href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot c320</td></tr><tr><td>eTrex LegendCX</td><td>GPSMAP 396</td><td>Nuvi 370<sup>[<a href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot c330</td></tr><tr><td>eTrex Venture C</td><td>GPSMAP 478</td><td>Nuvi 660<sup>[<a href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot c340</td></tr><tr><td>eTrex Venture CX</td><td>GPSMAP 496</td><td>Nuvi 670<sup>[<a href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot c510<sup>[<a href="#ftn.gpx">2</a>]</sup></td></tr><tr><td>eTrex VistaC</td><td>GPSMAP 60C</td><td>Nuvi 680<sup>[<a href="#ftn.gpx">2</a>]</sup></td><td>StreetPilot c530<sup>[<a href="#ftn.gpx">2</a>]</sup></td></tr><tr><td>eTrex Vista CX</td><td>GPSMAP 60CS</td><td>Quest</td><td>StreetPilot c550<sup>[<a href="#ftn.gpx">2</a>]</sup></td></tr><tr><td>Forerunner 205</td><td>GPSMAP 60CSX</td><td>Quest II</td><td>StreetPilot c580<sup>[<a href="#ftn.gpx">2</a>]</sup></td></tr><tr><td>Forerunner 301</td><td>GPSMAP 60CX</td><td>StreetPilot 2610</td><td>StreetPilot i2</td></tr><tr><td>Forerunner 305</td><td>GPSMAP 76C</td><td>StreetPilot 2620</td><td>StreetPilot i3</td></tr><tr><td>Foretrex 201</td><td>GPSMAP 76CS</td><td>StreetPilot 2650</td><td>StreetPilot i5</td></tr><tr><td>Foretrex 301</td><td>GPSMAP 76CSX</td><td>StreetPilot 2720</td><td>Zumo 450<sup>[<a href="#ftn.gpx">2</a>]</sup></td></tr><tr><td>GPS 18<sup>[<a id="posnonly" href="#ftn.posnonly">1</a>]</sup></td><td>GPSMAP 76CX</td><td>StreetPilot 2730</td><td>Zumo 550<sup>[<a href="#ftn.gpx">2</a>]</sup></td></tr><tr><td>GPSMAP 195</td><td>GPSMAP 96</td><td>StreetPilot 2820</td><td> </td></tr></table><p>
+</p><p>the following Bluetooth Garmin products:
+</p><table class="simplelist" border="0" summary="Simple list"><tr><td>GPS 10<sup>[<a href="#ftn.posnonly">1</a>]</sup></td><td> </td><td> </td><td> </td></tr></table><p>
+</p><p>and most serial Garmin GPS receivers including:
+</p><table class="simplelist" border="0" summary="Simple list"><tr><td>eMap</td><td>eTrex Yellow</td><td>GPS 12Map </td><td>GPS II+ </td></tr><tr><td>eTrex Camo</td><td>Forerunner 201</td><td>GPS 12 </td><td>GPS V</td></tr><tr><td>eTrex Legend</td><td>Foretrex 201</td><td>GPS 12XL </td><td>StreetPilot III</td></tr><tr><td>eTrex Summit</td><td>Geko 201</td><td>GPS III </td><td>StreetPilot III+</td></tr><tr><td>eTrex Venture</td><td>Geko 301</td><td>GPS III+ </td><td> </td></tr><tr><td>eTrex Vista</td><td>GPS 12CX </td><td>GPS II </td><td> </td></tr></table><p>
 </p><p>
        None of the GPSBabel developers has access to every model on that
        list, but we've received reports of success and/or have reasonable
@@ -1113,26 +1213,23 @@ This is the format readable that that program.</p></div><div class="section" lan
        is not a fitness program at its core and does not support features 
        like courses or calorie/fitness zone data.
 </p><p> 
-       To communicate with a unit serially, use the name of that
-       serial port such as "COM1" or  "/dev/cu.serial".  
+       To communicate with a Garmin GPS serially, use the name of that
+       serial port such as <code class="filename">COM1</code> or  <code class="filename">/dev/cu.serial</code>.  
 </p><p>
-       To communicate via USB use "usb:" as the filename on all OSes.   
-       Thus, to read the waypoints from a Garmin USB unit and write 
+       To communicate via USB use <code class="filename">usb:</code> as the filename on all OSes.   
+       Thus, to read the waypoints from a Garmin USB receiver and write 
        them to a GPX file:
-
-      </p><pre class="screen">gpsbabel -i garmin -f usb: -o gpx -F blah.gpx</pre><p>
-
-</p><p>
+</p><p><strong class="userinput"><code>gpsbabel -i garmin -f usb: -o gpx -F blah.gpx</code></strong></p><p>
        If you have multiple units attached via USB, you may provide 
        a unit number, with zero being the implied default.  So if you 
        have three USB models on your system, they can be addressed as 
-       "usb:0", "usb:1", and "usb:2".  To get a list of recognized devices,
+       <code class="filename">usb:0</code>, <code class="filename">usb:1</code>, and <code class="filename">usb:2</code>.  To get a list of recognized devices,
        specifiy a negative number such as:
-</p><pre class="screen">gpsbabel -i garmin -f usb:-1</pre><p> 
+</p><p><strong class="userinput"><code>gpsbabel -i garmin -f usb:-1</code></strong></p><p> 
 When reporting problems with the Garmin format, be sure to include
 the full unit model, firmware version, and be prepared to offer
-debugging dumps by adding "-D9" to the command line, like:
-</p><pre class="screen"> gpsbabel -D9 -i garmin -f usb: -o gpx -F blah.gpx</pre><p> 
+debugging dumps by adding <code class="option">-D9</code> to the command line, like:
+</p><p><strong class="userinput"><code> gpsbabel -D9 -i garmin -f usb: -o gpx -F blah.gpx</code></strong></p><p> 
 Custom icons are supported on units that support that.
 Neither GPSBabel nor your firmware know what is associated with any
 given slot number.  They don't know that the picture you placed in the
@@ -1145,12 +1242,16 @@ so they are named 'Custom 0' through 'Custom 511'.
        mode" in setup and that nothing else (PDA hotsync programs, gpsd,
        getty, pppd, etc.) is using the serial port.  
 </p><p>
-       For models connected via USB, we recommend use of the 'usb:' 
+       For models connected via USB, we recommend use of the <code class="filename">usb:</code>
        filename.   For this to work on Windows, you must install
        the Garmin driver.  For Linux, this will fail if have the garmin_gps
        kernel module loaded.  
        See the <a href="/osnotes.html" target="_top">Operating System Notes</a> for details.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_snlen"></a>snlen option</h3></div></div></div><p>
+</p><p>
+This module also supports <a href="#tracking" title="Realtime tracking">realtime tracking</a> 
+which allows realtime position reports from a Garmin GPS receiver over USB
+or serial.  
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Length of generated shortnames.
     </p><p>This option overrides the internal logic to figure out how many
 characters an addressed Garmin GPS will support when using the '-s' smartname
@@ -1158,10 +1259,10 @@ option.   This should be necessary only if you have a receiver type that
 GPSBabel doesn't know about or if you want to "dumb down" one unit to match
 another, such as wanting waypoint names in a StreetPilot 2720 (which supports
 20 character names) to exactly match those in a 60CS (which supports 10).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_snwhite"></a>snwhite option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_snwhite"></a><code class="option">snwhite</code> option</h3></div></div></div><p>
       Allow whitespace synth. shortnames.
     </p><p>This options controls whether spaces are allowed in generated 
-smart names when using the '-s' option.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_deficon"></a>deficon option</h3></div></div></div><p>
+smart names when using the '-s' option.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
     </p><p>
 This option specifies the icon or waypoint type to write for each waypoint on
@@ -1175,13 +1276,12 @@ Value specified may be a number from the Garmin Protocol Spec or a name
 as described in the <a href="#GarminIcons" title="Appendix B. Garmin Icons">Appendix B, <i>Garmin Icons</i></a>.
 </p><p>
 This option has no effect on input.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_get_posn"></a>get_posn option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_get_posn"></a><code class="option">get_posn</code> option</h3></div></div></div><p>
       Return current position as a waypoint.
     </p><p>This options gets the current longtitude and latitude from the attached GPS device
 and returns it as a single waypoint for further processing.  For example,
 to return the current position from a USB Garmin to a KML file:
-</p><pre class="screen">gpsbabel -i garmin,get_posn -f usb: -o kml -F myposition.kml</pre><p>
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_power_off"></a>power_off option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i garmin,get_posn -f usb: -o kml -F myposition.kml</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_power_off"></a><code class="option">power_off</code> option</h3></div></div></div><p>
       Command unit to power itself down.
     </p><p>This command forces an immediate powerdown of the addressed Garmin
 receiver.  It is ignored on hardware that does not support this command.
@@ -1189,19 +1289,16 @@ Obviously, further processing once you have sent a "power off" command to
 a unit that supports it is rather futile, so place this option carefully
 in your command.
 
-</p><pre class="screen">gpsbabel -o garmin,power_off -F /dev/ttyS0</pre><p>
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_category"></a>category option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -o garmin,power_off -F /dev/ttyS0</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_garmin_o_category"></a><code class="option">category</code> option</h3></div></div></div><p>
       Category number to use for written waypoints.
     </p><p>This numeric option will force waypoints to be written with that
 category number when sending to a Garmin receiver that has category
-support. It is ignored on receivers without that capability. </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gtrnctr"></a>Garmin Training Centerxml (gtrnctr)</h2></div></div></div><p>
+support. It is ignored on receivers without that capability. </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gtrnctr"></a>Garmin Training Centerxml (gtrnctr)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write tracks
         </p></li></ul></div><p>
-  </p><p>
-Garmin Training Center is the successor to Garmin' Logbook program
-for their workout units.  It is a free upgrade.
+GPSBabel has limited support for Garmin Training Center files.   That program is the successor to Garmin' Logbook program for their workout units.  It is a free upgrade.
 </p><p>
 This format is somewhat underachieving in GPSBabel.  It is a write-only
 format; we never read it.  The bigger problem, however, is a fundamental
@@ -1212,13 +1309,12 @@ of Training Center are different - it deals in concepts like laps and calories
 which are rather alien to GPSBabel and most of the formats we support.  As 
 such, while we can describe the tracks pretty accurately, things like 
 calories and heart zone tracking are not supported.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_geo"></a>Geocaching.com .loc (geo)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_geo"></a>Geocaching.com .loc (geo)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
-This format supports the Geocaching.com/EasyGPS ".loc" format.  This format
+This format supports the <a href="http://www.geocaching.com" target="_top">Geocaching.com</a>/<a href="http://www.easygps.com" target="_top">EasyGPS</a> ".loc" format.  This format
 was created specifically for Geocaching.com and is not the same as the 
 standard EasyGPS .loc format.  See the <a href="#fmt_easygps" title="EasyGPS binary format (easygps)">EasyGPS</a> 
 or <a href="#fmt_gpx" title="GPX XML (gpx)">GPX</a> formats for more general EasyGPS support.
@@ -1226,7 +1322,7 @@ or <a href="#fmt_gpx" title="GPX XML (gpx)">GPX</a> formats for more general Eas
 This is a simple XML-based format containing only very basic information 
 about geocaches.  If you can use the <a href="#fmt_gpx" title="GPX XML (gpx)">GPX</a> 
 format instead, you should consider doing so as it is a much richer format.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geo_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geo_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
     </p><p>
 This option specifies the icon or waypoint type to write for each waypoint on 
@@ -1239,7 +1335,7 @@ overrides any icon description that might be in the input file.
 There is no list of valid values for this option.
 </p><p>
 This option has no effect on input.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geo_o_nuke_placer"></a>nuke_placer option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geo_o_nuke_placer"></a><code class="option">nuke_placer</code> option</h3></div></div></div><p>
       Omit Placer name.
     </p><p>
 If this option is specified, GPSBabel will not read geocache placer information
@@ -1247,89 +1343,86 @@ from a .loc file on input.  That is, it will ignore any placeer names in the
 input file.
 </p><p>
 This option has no effect on output.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gcdb"></a>GeocachingDB for Palm/OS (gcdb)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gcdb"></a>GeocachingDB for Palm/OS (gcdb)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>This is the GeocachingDB by DougsBrat.  It works with v2
-and v3 of this program. See <a href="http://vip.hyperusa.com/~dougs/geocachingdb/geocachingdb.htm" target="_top">vip.hyperusa.com</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_geonet"></a>GEOnet Names Server (GNS) (geonet)</h2></div></div></div><p>
+        </p></li></ul></div><p>This is format for the 
+<a href="http://vip.hyperusa.com/~dougs/geocachingdb/geocachingdb.htm" target="_top">
+GeocachingDB</a> program by DougsBrat.  It works with v2
+and v3 of this program. 
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_geonet"></a>GEOnet Names Server (GNS) (geonet)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>Input support for the GEOnet Names Server (GNS) country
 file structure.  Export to this format is not possible, as this format
 has too many fields that we never get populated by any other
-format.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_geoniche"></a>GeoNiche .pdb (geoniche)</h2></div></div></div><p>
+format.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_geoniche"></a>GeoNiche .pdb (geoniche)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>Geoniche is a Palm/OS application oriented for the
-off-road user.  This module was contributed by Rick Richardson.  See
-<a href="http://www.nwlink.com/~raydar/GeoNiche/" target="_top">nwlink.com</a>
-         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geoniche_o_dbname"></a>dbname option</h3></div></div></div><p>
+        </p></li></ul></div><p><a href="http://www.raydarllc.com/" target="_top">Geoniche</a> is a Palm/OS application oriented for the
+off-road user.  This module was contributed by Rick Richardson.  
+         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geoniche_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name (filename).
     </p><p>
 This option specifies the database name for the output file.  This name is
 not the same thing as the file name on your computer; this is the name that
 appears in the file browser on your handheld.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geoniche_o_category"></a>category option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_geoniche_o_category"></a><code class="option">category</code> option</h3></div></div></div><p>
       Category name (Cache).
     </p><p>
 This option specifies the name of the category in which to place the
 waypoints.  If this option is not specified, the default category is
 "Cache".
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_kml"></a>Google Earth (Keyhole) Markup Language (kml)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_kml"></a>Google Earth (Keyhole) Markup Language (kml)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
 KML, the Keyhole Markup Language, is used by Keyhole and
-Google Earth.  There are features in this file format that GPSBabel
+<a href="http://earth.google.com" target="_top">Google Earth</a>.  There are features in this file format that GPSBabel
 doesn't support - such as camera views - but waypoints, tracks, and routes 
 work well.
 </p><p>
 Google Earth also uses GPSBabel internally for receiver communications
 and several file format imports and exports.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
     </p><p>
 This option specifies the default name for waypoint icons
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_lines"></a>lines option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_lines"></a><code class="option">lines</code> option</h3></div></div></div><p>
       Export linestrings for tracks and routes.
     </p><p>
 When this option is nonzero, GPSBabel draws lines between points in
 tracks and routes.  The default value for this option is 1, which causes
 lines to be drawn by default.  To disable line-drawing, specify 
 <code class="option">lines=0</code>.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_points"></a>points option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_points"></a><code class="option">points</code> option</h3></div></div></div><p>
       Export placemarks for tracks and routes.
     </p><p>
 When this option is nonzero, GPSBabel draws placemarks for tracks and routes.
 The default value for this option is 1, which causes placemarks to be drawn.
 To disable drawing of placemarks, specify <code class="option">points=0</code>.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_line_width"></a>line_width option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_line_width"></a><code class="option">line_width</code> option</h3></div></div></div><p>
       Width of lines, in pixels.
     </p><p>
 This option specifies the width of the drawn lines in pixels.  The default
 value is six pixels.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_line_color"></a>line_color option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_line_color"></a><code class="option">line_color</code> option</h3></div></div></div><p>
       Line color, specified in hex AABBGGRR.
     </p><p>
 This option specifies the line color as a hexadecimal number in 
 AABBGGRR format, where A is alpha, B is blue, G is green, and R is red.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_floating"></a>floating option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_floating"></a><code class="option">floating</code> option</h3></div></div></div><p>
       Altitudes are absolute and not clamped to ground.
     </p><p>
 When this option is nonzero, altitudes are allowed to float above or below
@@ -1338,7 +1431,7 @@ clamped to the ground.  Specify <code class="option">floating=1</code> to allow
 float.
 </p><p>
 This option is more useful to pilots than to hikers.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_extrude"></a>extrude option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_extrude"></a><code class="option">extrude</code> option</h3></div></div></div><p>
       Draw extrusion line from trackpoint to ground.
     </p><p>
 This option is a boolean flag to specicy whether Google Earth should
@@ -1346,7 +1439,7 @@ draw lines from trackpoints to the ground.   It defaults to '0', which
 means no extrusion lines are drawn.   The option of '1' is, of course,
 most useful for points that aren't actually on the ground such as those
 be captured from planes.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_trackdata"></a>trackdata option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_trackdata"></a><code class="option">trackdata</code> option</h3></div></div></div><p>
       Include extended data for trackpoints (default = 1).
     </p><p>
 This is a boolean flag that controls
@@ -1355,29 +1448,28 @@ By default computed speed, timestamps, and so on are written with the default
 of '1' for this option.   If you are writing large tracks and do not value
 this information, you can reduce the size of the generated file substantially
 by turning this flag off by setting it to '0'.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_units"></a>units option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_units"></a><code class="option">units</code> option</h3></div></div></div><p>
       Units used when writing comments ('s'tatute or 'm'etric).
     </p><p>
 Units is a simple option.  Specify 's' for "statute" (miles, feet, and 
 other things that don't sensibly convert to each other, but are craved
 by Americans) or 'm' for "metric".
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_labels"></a>labels option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_labels"></a><code class="option">labels</code> option</h3></div></div></div><p>
       Display labels on track and routepoints  (default = 1).
     </p><p>
 When this option is zero, no labels are added for track and route points.
 This option defaults to one, so labels are added by default.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_max_position_points"></a>max_position_points option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_kml_o_max_position_points"></a><code class="option">max_position_points</code> option</h3></div></div></div><p>
       Retain at most this number of position points  (0 = unlimited).
     </p><p>
        This option allows you to specify the number of points kept
        in the 'snail trail' generated in the realtime tracking mode.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_google"></a>Google Maps XML (google)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_google"></a>Google Maps XML (google)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read tracks
-        </p></li></ul></div><p>
-  </p><p> This format is designed to read the XML emitted when you
-tack "&amp;output=js" onto the end of a Google Maps route URL (use
+        </p></li></ul></div><p> This format is designed to read the XML emitted when you
+tack "&amp;output=js" onto the end of a <a href="http://www.maps.google.com&gt;Google Maps" target="_top">Google Maps</a>route URL (use
 the "link to this page" option to get a usable URL.)  This allows you
 to plan a route using Google Maps, then download it and use it in your
 own mapping program or GPS receiver.   To get a file suitable for use
@@ -1404,39 +1496,35 @@ TO="1060 W. Addison St, Chicago, IL"
 wget -O - "http://maps.google.com/maps?q=$FROM to $TO&amp;output=js" \
 2&amp;&gt;/dev/null &gt;google_map.js
 gpsbabel -i google -f google_map.js -o gpx -F google_map.gpx
-</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpilots"></a>GpilotS (gpilots)</h2></div></div></div><p>
+</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpilots"></a>GpilotS (gpilots)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p> This is a Palm/OS file format for GPilotS.  It was tested
-against version 6.2.
-</p><p>
-            <a href="http://www.cru.fr/perso/cc/GPilotS/" target="_top">http://www.cru.fr/perso/cc/GPilotS/</a>
-         </p><p> Neither tracks nor routes are supported at this
-time.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpilots_o_dbname"></a>dbname option</h3></div></div></div><p>
+        </p></li></ul></div><p> This is a Palm/OS file format for 
+            <a href="http://www.cru.fr/perso/cc/GPilotS/" target="_top">GPilotS</a>.
+       It was tested against version 6.2 of GPilotsS
+</p><p> Neither tracks nor routes are supported at this
+time.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpilots_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name.
     </p><p>
 This option specifies the database name for the output file.  This name is
 not the same thing as the file name on your computer; this is the name that
 appears in the file browser on your handheld.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gtm"></a>GPS TrackMaker (gtm)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gtm"></a>GPS TrackMaker (gtm)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>Input and output support for waypoints, tracks and routes in
+        </p></li></ul></div><p>Input and output support for waypoints, tracks and routes in
              the <a href="http://www.gpstm.com" target="_top">GPS TrackMaker </a>
-              binary format.</p><p>Code implemented by Gustavo Niemeyer.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_arc"></a>GPSBabel arc filter file (arc)</h2></div></div></div><p>
+              binary format.</p><p>Code implemented by Gustavo Niemeyer.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_arc"></a>GPSBabel arc filter file (arc)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
@@ -1444,32 +1532,36 @@ This format is used by GPSBabel itself as the input to the
 <a href="#filter_arc" title="Include Only Points Within Distance of Arc (arc)">arc</a> and 
 <a href="#filter_polygon" title="Include Only Points Inside Polygon (polygon)">polygon</a> filters.  See those filters
 for more information.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsdrive"></a>GpsDrive Format (gpsdrive)</h2></div></div></div><p>
+</p><p>
+The arc format reads two numeric fields, a latitude and a longitude, 
+in any format recognized as <a href="#style_def_lathuman" title="LAT_HUMAN_READABLE">human 
+readable</a> and writes as simple degrees decimal.  It really is
+intended for GPSBabel's own internal use more than general use, though
+it turns out to be a convenient way of expressing simple polylines and 
+polygons.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsdrive"></a>GpsDrive Format (gpsdrive)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>GpsDrive way.txt file format. A space seperated format
 file. Tested against GpsDrive v 1.30 found at <a href="http://www.kraftvoll.at/software" target="_top">kraftvoll.at</a>.
-Contributed by Alan Curry.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsdrivetrack"></a>GpsDrive Format for Tracks (gpsdrivetrack)</h2></div></div></div><p>
+Contributed by Alan Curry.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsdrivetrack"></a>GpsDrive Format for Tracks (gpsdrivetrack)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>Format used by GpsDrive to save tracks. Like GPSDRIVE a
 space seperated format file. See above for a link to GpsDrive.
-Contributed by Tobias Minich.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsman"></a>GPSman (gpsman)</h2></div></div></div><p>
+Contributed by Tobias Minich.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsman"></a>GPSman (gpsman)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p> <a href="http://www.ncc.up.pt/gpsman/" target="_top">GPS Manager</a> 
@@ -1478,52 +1570,56 @@ can read and write formats GPSBabel doesn't understand.  The format defaults
 are not supported.
        </p><p>This format is documented at the GPS Manager 
        <a href="http://www.ncc.up.pt/gpsman/gpsmanhtml/manual/html/GPSMandoc_30.html" target="_top">doc site</a>.
-       </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpspilot"></a>GPSPilot Tracker for Palm/OS (gpspilot)</h2></div></div></div><p>
+       </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpspilot"></a>GPSPilot Tracker for Palm/OS (gpspilot)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>The file format for GPSPILOT <a href="http://www.gpspilot.com" target="_top">gpspilot.com</a> was provided by Ron
+        </p></li></ul></div><p>The file format for GPSPILOT <a href="http://www.gpspilot.com" target="_top">gpspilot.com</a> was provided by Ron
 Parker.  The output from this module has been tested with GPSPilot
 Tracker v5.05sx, but it is based on reverse-engineering so it may not
 work with all versions of all GPSPilot products.  It had read-only
 support for Airport, Navaid, City and Landmark files but will read and
-write Point files.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpspilot_o_dbname"></a>dbname option</h3></div></div></div><p>
+write Point files.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpspilot_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name.
     </p><p>
 This option specifies the database name for the output file.  This name is
 not the same thing as the file name on your computer; this is the name that
 appears in the file browser on your handheld.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsutil"></a>gpsutil (gpsutil)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpsutil"></a>gpsutil (gpsutil)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>GPSUtil has a simple file format of this program that runs
+        </p></li></ul></div><p>The format we call <a href="http://www.cs.uakron.edu/~hennings/gpsutil" target="_top">gpsutil</a> is a simple file format used by a program that runs
 on POSIX- compliant OSes like UNIX and Linux.  Reads and writes of
-this format are reliable.  (I've also contributed to this program.)
-It's available at <a href="http://www.cs.uakron.edu/~hennings/gpsutil" target="_top">cs.uakron.edu</a>.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpx"></a>GPX XML (gpx)</h2></div></div></div><p>
+this format are very reliable.  (<a href="/people/robertlipe.html" target="_top">The lead
+developer of GPSBabel</a> also contributed to this that 'gpsutil' 
+the early days.)</p><p>
+       Note that 'gpsutil' is a different format - and program - than the one called <a href="http://www.gpsu.co.uk/index.html" target="_top">GPS Utility</a>; for that one, you should probably use our  <a href="#fmt_pcx" title="Garmin PCX5 (pcx)">PCX module</a>.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_gpx"></a>GPX XML (gpx)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>This is the most capable and expressive of all the file
+        </p></li></ul></div><p>This is the most capable and expressive of all the file
 formats supplied.  It is described at <a href="http://www.topografix.com/gpx.asp" target="_top">topografix.com</a> and is
 supported by EasyGPS, ExpertGPS, and many other programs described at
 <a href="http://www.topografix.com/gpx_resources.asp" target="_top">topografix.com</a>
-         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_snlen"></a>snlen option</h3></div></div></div><p>
+         </p><p>
+       GPSBabel's reader of this module attempts to preserve tags it doesn't
+       really understand.   It also tries to glean interesting data from
+       <a href="http://www.geocaching.com" target="_top">pocket queries from Geocaching.com</a>.
+       </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Length of generated shortnames.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_suppresswhite"></a>suppresswhite option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_suppresswhite"></a><code class="option">suppresswhite</code> option</h3></div></div></div><p>
       No whitespace in generated shortnames.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_logpoint"></a>logpoint option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_logpoint"></a><code class="option">logpoint</code> option</h3></div></div></div><p>
       Create waypoints from geocache log entries.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_urlbase"></a>urlbase option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_urlbase"></a><code class="option">urlbase</code> option</h3></div></div></div><p>
       Base URL for link tag in output.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_gpxver"></a>gpxver option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_gpx_o_gpxver"></a><code class="option">gpxver</code> option</h3></div></div></div><p>
       Target GPX version for output.
     </p><p>
 This option specifies the version of the GPX specification to use for 
@@ -1534,22 +1630,20 @@ Notice that this is not a full scale XML schema conversion.  In particular,
 if you have a GPX 1.0 file that has extended namespaces in it (such as a 
 pocket query from Geocaching.com) just writing it with this option will
 result in a horribly mangled GPX file as we can't convert the schema data.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_hiketech"></a>HikeTech (hiketech)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_hiketech"></a>HikeTech (hiketech)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li></ul></div><p>
-  </p><p>This is the .gps format used by the Mac OS X applications
+        </p></li></ul></div><p>This is the .gps format used by the Mac OS X applications
 written by HikeTech. These include TopoDraw, Link2GPS, and GPSWrite.
 More information about these products can be found at <a href="http://www.hiketech.com" target="_top">hiketech.com</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_holux"></a>Holux (gm-100) .wpo Format (holux)</h2></div></div></div><p>
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_holux"></a>Holux (gm-100) .wpo Format (holux)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p> The Holuxgm-100 (e-fox) gps receiver uses standard
+        </p></li></ul></div><p> The Holux gm-100 (e-fox) gps receiver uses standard
 compact flash cards.  File formats were provided by Holux-Taiwan
 <a href="http://www.holux.com.tw" target="_top">holux.com</a> to the author.
 The code was tested against version 2.27E1; other versions and
@@ -1568,60 +1662,61 @@ loss is only about 1.7 meters (5 feet).
 </p><p> The generated waypoint failes can also be used by MapShow
 version 1.14.  This program is free of charge from the Holux web site.
 </p><p> This format was contributed by Jochen Becker.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_hsandv"></a>HSA Endeavour Navigator export File (hsandv)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_hsandv"></a>HSA Endeavour Navigator export File (hsandv)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>HSA Systems Endeavour Navigator format - will import both
+        </p></li></ul></div><p>HSA Systems Endeavour Navigator format - will import both
 the old version 4.x binary files, and the newer XML based ones.  Only
 writes the new XML (5.0 and above) format. (use the .exp
-extension)</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_html"></a>HTML Output (html)</h2></div></div></div><p>
+extension)</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_html"></a>HTML Output (html)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write waypoints
-        </p></li></ul></div><p>
-  </p><p> HTML output generates a single HTML file of all of the
+        </p></li></ul></div><p> GPSBabel's HTML output generates a single HTML file of all of the
 waypoints in the input file.  It supports a number of Groundspeak GPX
-extensions, as well as filters out potentially harmful HTML from the
-input file while maintaining almost all of the source HTML formatting.
+extensions and filters out potentially harmful HTML from the
+input file while maintaining almost all of the source HTML formatting.   
+This makes this format well suited for generating HTML to hand to programs
+like Plucker for putting in a PDA and especially so for "paperless caching"
+for Geocachers with pocket queries.
+</p><p>This format is similar to the <a href="#fmt_text" title="Textual Output (text)">text</a> format.
 </p><p> The following command line reads a GPX file with
 Groundspeak extensions and writes an HTML file with encrypted hints
 that is rendered using a custom stylesheet:
-</p><pre class="screen">gpsbabel -i gpx -f 12345.gpx -o html,stylesheet=green.css,encrypt -F 12345.html</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_stylesheet"></a>stylesheet option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f 12345.gpx -o html,stylesheet=green.css,encrypt -F 12345.html</code></strong></p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_stylesheet"></a><code class="option">stylesheet</code> option</h3></div></div></div><p>
       Path to HTML style sheet.
     </p><p>
 Use this option to specify a CSS style sheet to be used with the
 resulting HTML file.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_encrypt"></a>encrypt option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_encrypt"></a><code class="option">encrypt</code> option</h3></div></div></div><p>
       Encrypt hints using ROT13.
     </p><p>
 Use this option to encrypt hints from Groundspeak GPX files.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_logs"></a>logs option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_logs"></a><code class="option">logs</code> option</h3></div></div></div><p>
       Include groundspeak logs if present.
     </p><p>
 Use this option to include Groundspeak cache logs in the created document.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_degformat"></a>degformat option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_degformat"></a><code class="option">degformat</code> option</h3></div></div></div><p>
       Degrees output as 'ddd', 'dmm'(default) or 'dms'.
     </p><p>
 When GPSBabel writes coordinates, this option is consulted to see if it
 should write decimal degrees ('ddd') decimal minutes ('dmm') or degrees,
 minutes, seconds ('dms').  The default is 'dmm'.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_altunits"></a>altunits option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_html_o_altunits"></a><code class="option">altunits</code> option</h3></div></div></div><p>
       Units for altitude (f)eet or (m)etres.
     </p><p>
 This option should be 'f' if you want the altitude expressed in feet and
 'm' for meters.  The default is 'f'.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_ignrando"></a>IGN Rando track files (ignrando)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_ignrando"></a>IGN Rando track files (ignrando)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write tracks
         </p></li></ul></div><p>
-  </p><p>
 This format supports IGN Rando track files. IGN Rando is a program mainly 
 used in France for Topo maps. The files are XML based and are "windows-1252" 
 encoded. Trackpoints do not have time stamps.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ignrando_o_index"></a>index option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ignrando_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of track to write (if more the one in source).
     </p><p>
 Because the format supports only one track, this option may be used 
@@ -1629,107 +1724,125 @@ on output to select a single track from a collection of
 tracks read from a more expressive format.  If you have, say, a 
 <a href="#fmt_gpx" title="GPX XML (gpx)">gpx</a> file that contains two tracks, you may
 use this option to write them one at a time to individual files.
-</p><pre class="screen">gpsbabel -i gpx -f tracks.gpx -o ignrando,index=1 -F track1.txt -o ignrando,index=2 -F track2.txt</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_ktf2"></a>Kartex 5 Track File (ktf2)</h2></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f tracks.gpx -o ignrando,index=1 -F track1.txt -o ignrando,index=2 -F track2.txt</code></strong></p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_ktf2"></a>Kartex 5 Track File (ktf2)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p>Support for Kartex 5 trackfiles. For more info see kwf2.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_kwf2"></a>Kartex 5 Waypoint File (kwf2)</h2></div></div></div><p>
+</p><p>Support for Kartex 5 trackfiles. For more info see kwf2.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_kwf2"></a>Kartex 5 Waypoint File (kwf2)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>Support for Kartex 5 waypoint files. Kartex is a Swedish 
        map and GPS positioning system. GPSBabel can read and write 
        files from Kartex 4 and 5 with WGS84 coordinates. UTM or 
        Swedish grid are not supported.
-      </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_psitrex"></a>KuDaTa PsiTrex text (psitrex)</h2></div></div></div><p>
+      </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_kompass_tk"></a>Kompass (DAV) Track (.tk) (kompass_tk)</h2></div></div></div><p class="fmtcapshdr">
+    This format can...
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
+          read and write tracks
+        </p></li></ul></div><p>
+This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
+format, so it has all of the same options as that format.
+</p><p>
+  This module supports track files used by Kompass and DAV "Deutscher Alpenverein".
+</p><p>
+  <a href="http://www.kompass.at" target="_top">Kompass</a> is a publishing company from Austria.
+  If you want to get more information about DAV, the German alpine association, 
+  and if you are familiar with the german language, please have a look at their <a href="http://www.alpenverein.de" target="_top">homepage</a>.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_kompass_wp"></a>Kompass (DAV) Waypoints (.wp) (kompass_wp)</h2></div></div></div><p class="fmtcapshdr">
+    This format can...
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
+          read and write waypoints
+        </p></li></ul></div><p>
+This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
+format, so it has all of the same options as that format.
+</p><p>
+  This module supports waypoint files used by Kompass and DAV "Deutscher Alpenverein".
+</p><p>
+  Some more information under <a href="#fmt_kompass_tk" title="Kompass (DAV) Track (.tk) (kompass_tk)">kompass_tk</a> format.
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_psitrex"></a>KuDaTa PsiTrex text (psitrex)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>This is a text format created by KuDaTa's PsiTrex program
+        </p></li></ul></div><p>This is a text format created by KuDaTa's PsiTrex program
 for the Psion PDAs. The format can't be readily handled by XCSV, so
 this format is handled explicitly. Waypoints, routes and tracks are
 all handled, with icon names used corresponding to verison 1.13 of
 PsiTrex. This module was contributed to GPSBabel by Mark
-Bradley.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_lowranceusr"></a>Lowrance USR (lowranceusr)</h2></div></div></div><p>
+Bradley.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_lowranceusr"></a>Lowrance USR (lowranceusr)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
-The Lowrance iFinder GPS series has the unique capability
+        </p></li></ul></div><p> 
+The <a href="http://www.lowrance.com" target="_top">Lowrance iFinder GPS</a> series has the unique capability
 to output its data to an MMC card.  The data is saved to the card as a
 .USR file and can be read by your computer using a card reader.
 Waypoints, routes, tracks are supported.  By default, Event marker
 icons are converted to waypoints.  Symbols tend to get lost in the
 translation.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_lowranceusr_o_ignoreicons"></a>ignoreicons option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_lowranceusr_o_ignoreicons"></a><code class="option">ignoreicons</code> option</h3></div></div></div><p>
       Ignore event marker icons.
     </p><p>
 This option instructs GPSBabel to not convert icons to waypoints on input.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_lowranceusr_o_merge"></a>merge option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_lowranceusr_o_merge"></a><code class="option">merge</code> option</h3></div></div></div><p>
       (USR output) Merge into one segmented track.
     </p><p>
 This option merges all tracks into a single track with multiple segments.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_lowranceusr_o_break"></a>break option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_lowranceusr_o_break"></a><code class="option">break</code> option</h3></div></div></div><p>
       (USR input) Break segments into separate tracks.
     </p><p>
 This option breaks track segments into separate tracks when reading a .USR
 file.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_maggeo"></a>Magellan Explorist Geocaching (maggeo)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_maggeo"></a>Magellan Explorist Geocaching (maggeo)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write waypoints
-        </p></li></ul></div><p>
-  </p><p> The SD card format used by the Magellan Explorist 400,
-500, and 600 to describe geocaches.  Notice what while the format can
+        </p></li></ul></div><p> This format support the on-card format used by the <a href="http://www.magellangps.com" target="_top">Magellan</a> Explorist 400,
+Explorist 500, Explorist 600, Explorist 210, and Explorist XL 
+to describe geocaches.  Notice what while the format can
 hold an infinite number of geocaches, the unit will read and silently
 discard all but 200 geocache POIs at a time.</p><p> You should name any file created with this format with a
 ".gs" extension so the firmware can read it.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mapsend"></a>Magellan Mapsend (mapsend)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mapsend"></a>Magellan Mapsend (mapsend)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
-This format supports the Magellan <span class="productname">MapSend</span>™ native
+This format supports the <a href="http://www.magellangps.com" target="_top">Magellan</a> <span class="productname">MapSend</span>™ native
 file format.
 </p><p>
 Kudos to Magellan for having the foresight to document their file formats,
 making software like this possible.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsend_o_trkver"></a>trkver option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_mapsend_o_trkver"></a><code class="option">trkver</code> option</h3></div></div></div><p>
       MapSend version TRK file to generate (3,4).
     </p><p>
 This option sets the MapSend version to generate TRK files, 
 since new MapSend versions can't open version 3 files. 
 Valid values are 3 (MapSend v3.0) or 4 (MapSend v4.0 and v4.1).
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magnav"></a>Magellan NAV Companion for Palm/OS (magnav)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magnav"></a>Magellan NAV Companion for Palm/OS (magnav)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
-Magellan NAV Companion for Palm/OS is not really designed
+<a href="http://www.magellangs.com" target="_top">Magellan</a> NAV Companion for Palm/OS is not really designed
 for this sort of use, but its file format is supported and with a
 little bit of patience you can both read and write NAV Companion
 waypoints.  This conversion is based on
@@ -1752,7 +1865,7 @@ the old database, even in your backup directory.  That's a feature of
 PalmOS, not of NAV Companion.)  
 </p><p>
 To merge the databases, use a command line like the following:
-</p><pre class="screen">gpsbabel -i magnav -f Companion_Waypoints.PDB -i geo -f geocaching.loc -o magnav -F merged.pdb</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i magnav -f Companion_Waypoints.PDB -i geo -f geocaching.loc -o magnav -F merged.pdb</code></strong></p><p>
 Second, you must use the installer to install your new PDB file.  Don't
 make the mistake of copying it over the existing Companion_Waypoints.PDB
 file; the one on the handheld will overwrite it rather than merging with
@@ -1763,29 +1876,28 @@ applications, you must tell NAV Companion that its waypoints database
 has changed out from under it.  One way to do this is to go to the 
 waypoints screen and attempt to scroll; that will force it to reread 
 the database and fix the record pointers that it keeps on the heap.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magellanx"></a>Magellan SD files (as for eXplorist) (magellanx)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magellanx"></a>Magellan SD files (as for eXplorist) (magellanx)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
-       This is the SD card format used by the Magellan Explorist 400,
-       500, 600, and XL and internally on those devices plus the 
-       Explorist 210.  Waypoints are identical to the Magellan SD format 
-       used by Meridian, but allows longer waypoint names.  Routes are 
+       This is the SD card format used by the <a href="http://www.magellangps.com" target="_top">Magellan</a> Explorist 400,
+       Explorist 500, Explorist 600, and Explorist XL and internally on those devices plus the 
+       Explorist 210.  Stored waypoints are identical to the <a href="#fmt_magellan" title="Magellan SD files (as for Meridian) (magellan)">Magellan SD format</a>
+       used by Meridian, but the newer models allow longer waypoint names.  Routes are 
        subtly different.
 </p><p>        
        You should name any file containing waypoints created with 
        this format with a ".upt" extension so the firmware can read it.
        Similarly, routes should be named ".rte" and tracks should be
        named ".log".
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellanx_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellanx_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellanx_o_maxcmts"></a>maxcmts option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellanx_o_maxcmts"></a><code class="option">maxcmts</code> option</h3></div></div></div><p>
       Max number of comments to write (maxcmts=200).
     </p><p>
 The maxcmts option allows you to specify the number comments that will
@@ -1798,30 +1910,30 @@ is therefore sometimes convenient to limit the number of waypoint
 comments written to the receiver.   For example, a geocacher might want
 to upload 400 waypoints, but only 190 with comments so that DirectRoute
 could provide driving directions for the next ten turns.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magellan"></a>Magellan SD files (as for Meridian) (magellan)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magellan"></a>Magellan SD files (as for Meridian) (magellan)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>GPSBabel supports the following Magellan receivers:
+        </p></li></ul></div><p>GPSBabel supports the following <a href="http://www.magellangps.com" target="_top">Magellan</a> receivers:
 </p><table class="simplelist" border="0" summary="Simple list"><tr><td>310</td><td>Meridian Color</td></tr><tr><td>315</td><td>Explorist 100 (with aftermarket cable)</td></tr><tr><td>Map330</td><td>Explorist 200 (with aftermarket cable)</td></tr><tr><td>SporTrak Map Color</td><td>Explorist 300 (with aftermarket cable)</td></tr><tr><td>SporTrak Map</td><td>Explorist 210</td></tr><tr><td>SporTrak Map Pro</td><td>Explorist 300</td></tr><tr><td>SporTrak Map Topo</td><td>Explorist 400</td></tr><tr><td>Meridian (green or yellow)</td><td>Explorist 500</td></tr><tr><td>Meridian Gold</td><td>Explorist 600</td></tr><tr><td>Meridian Platinum</td><td>Explorist XL</td></tr></table><p>
 </p><p>
        This format is used for both the serial protocol used on the
        devices with serial ports such as Map330 and Meridian and for
        the files stored either in either the unit's internal memory 
-       (Explorist 210, 400, 500, 600, XL) or on removable memory.
+       (Explorist 210, Explorist 400, Explorist 500, Explorist 600, 
+       Explorist XL) or on removable memory.
 </p><p>
        If you specify a serial port for the file (.e.g. "COM1", "/dev/ttyS0")
        to be read or written, GPSBabel will use serial protocol.   Specifying
        a file, either on local filesystem or on a mounted flash card reader,
        will results in the file-based format being used.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan_o_maxcmts"></a>maxcmts option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan_o_maxcmts"></a><code class="option">maxcmts</code> option</h3></div></div></div><p>
       Max number of comments to write (maxcmts=200).
     </p><p>
 The maxcmts option allows you to specify the number comments that will
@@ -1834,16 +1946,15 @@ is therefore sometimes convenient to limit the number of waypoint
 comments written to the receiver.   For example, a geocacher might want
 to upload 400 waypoints, but only 190 with comments so that DirectRoute
 could provide driving directions for the next ten turns.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magellan1"></a>Magellan serial protocol (magellan)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_magellan1"></a>Magellan serial protocol (magellan)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>GPSBabel supports the following Magellan receivers:
+        </p></li></ul></div><p>GPSBabel supports the following <a href="http://www.magellangps.com" target="_top">Magellan</a> receivers:
 </p><table class="simplelist" border="0" summary="Simple list"><tr><td>310</td><td>Meridian Color</td></tr><tr><td>315</td><td>Explorist 100 (with aftermarket cable)</td></tr><tr><td>Map330</td><td>Explorist 200 (with aftermarket cable)</td></tr><tr><td>SporTrak Map Color</td><td>Explorist 300 (with aftermarket cable)</td></tr><tr><td>SporTrak Map</td><td>Explorist 210</td></tr><tr><td>SporTrak Map Pro</td><td>Explorist 300</td></tr><tr><td>SporTrak Map Topo</td><td>Explorist 400</td></tr><tr><td>Meridian (green or yellow)</td><td>Explorist 500</td></tr><tr><td>Meridian Gold</td><td>Explorist 600</td></tr><tr><td>Meridian Platinum</td><td>Explorist XL</td></tr></table><p>
 </p><p>
 The RoadMate family of products is not supported.
@@ -1856,8 +1967,13 @@ The RoadMate family of products is not supported.
        If you specify a serial port for the file (.e.g. "COM1", "/dev/ttyS0")
        to be read or written, GPSBabel will use serial protocol.   Specifying
        a file, either on local filesystem or on a mounted flash card reader,
-       will results in the file-based format being used.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_deficon"></a>deficon option</h3></div></div></div><p>
+       will result in the file-based format being used.
+</p><p>
+       Users of the Explorist generation of receivers should probably
+       prefer to use the <a href="#fmt_magellan" title="Magellan SD files (as for Meridian) (magellan)">magellanx</a>
+       format over this one.
+
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
     </p><p>
 This option specifies the icon or waypoint type to write for each waypoint on
@@ -1868,7 +1984,7 @@ just those that do not already have descriptions.  That is, this option
 overrides any icon description that might be in the input file.
 </p><p>
 This option has no effect on input.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_maxcmts"></a>maxcmts option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_maxcmts"></a><code class="option">maxcmts</code> option</h3></div></div></div><p>
       Max number of comments to write (maxcmts=200).
     </p><p>
 The maxcmts option allows you to specify the number comments that will
@@ -1881,7 +1997,7 @@ is therefore sometimes convenient to limit the number of waypoint
 comments written to the receiver.   For example, a geocacher might want
 to upload 400 waypoints, but only 190 with comments so that DirectRoute
 could provide driving directions for the next ten turns.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_baud"></a>baud option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_baud"></a><code class="option">baud</code> option</h3></div></div></div><p>
       Numeric value of bitrate (baud=4800).
     </p><p>
   This option causes GPSBabel to use the given baud rate for serial
@@ -1889,7 +2005,7 @@ could provide driving directions for the next ten turns.
   default value matches the default on the receiver, 4800.
 </p><p>
   Valid options are 1200, 2400, 4800, 9600, 19200, 57600, and 115200.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_noack"></a>noack option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_noack"></a><code class="option">noack</code> option</h3></div></div></div><p>
       Suppress use of handshaking in name of speed.
     </p><p>
 Magellan's protocol specification strongly encourages the use of software
@@ -1905,7 +2021,7 @@ In controlled environments (good cables, low electrical noise, receiving
 from the unit, not doing donuts with the unit set to "track up" at a 150
 mile scale with 500 waypoints on the screen) it is sometimes useful to 
 release that safety belt by using the "noack" suboption.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_nukewpt"></a>nukewpt option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_magellan1_o_nukewpt"></a><code class="option">nukewpt</code> option</h3></div></div></div><p>
       Delete all waypoints.
     </p><p>
 This option erases all waypoints in the receiver before doing a transfer.
@@ -1915,42 +2031,39 @@ to ensure the units starts with a clean state before sending waypoints to
 it.   Using this option on transmit is a better idea than doing it on 
 receive since the latter would erase all the waypoints before asking the
 unit to send all the waypoints.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tef"></a>Map&amp;Guide 'TourExchangeFormat' XML (tef)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tef"></a>Map&amp;Guide 'TourExchangeFormat' XML (tef)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read routes
         </p></li></ul></div><p>
-  </p><p>
 TEF, internally called "TourExchangeFormat", is an XML based export format 
 used by Map&amp;Guide <span class="productname">Motorrad-Routenplaner 2005/06</span>™.
 </p><p>
 Because this is only an export format, GPSBabel does not support writing to
 this format.
 </p><p>
-GPSBabel also supports the <a href="#fmt_bcr" title="Motorrad Routenplaner (Map">bcr</a> format, which 
+GPSBabel also supports the <a href="#fmt_bcr" title="Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)">bcr</a> format, which 
 may also be used with this program and supports both reading and writing.
-</p><pre class="screen"> gpsbabel -r -i tef,routevia -f in.xml -o gpx -F out.gpx</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tef_o_routevia"></a>routevia option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code> gpsbabel -r -i tef,routevia -f in.xml -o gpx -F out.gpx</code></strong></p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tef_o_routevia"></a><code class="option">routevia</code> option</h3></div></div></div><p>
       Include only via stations in route.
     </p><p>
 This option may be used to eliminate calculated route points from the route.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mag_pdb"></a>Map&amp;Guide to Palm/OS exported files (.pdb) (mag_pdb)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mag_pdb"></a>Map&amp;Guide to Palm/OS exported files (.pdb) (mag_pdb)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read routes
-        </p></li></ul></div><p>
-  </p><p> With this format we support the Palm/OS export for
+        </p></li></ul></div><p> With this format we support the Palm/OS export for
 Map&amp;Guide based products like "PowerRoute",
 "Motorrad-Routenplaner" and (maybe) other software. The exported files
 can contain maps and/or route descriptions. The reader for this format
 has been tested with PowerRoute 5+6, Motorrad-Routenplaner
-2002(-2006).</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mapconverter"></a>Mapopolis.com Mapconverter CSV (mapconverter)</h2></div></div></div><p>
+2002(-2006).</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mapconverter"></a>Mapopolis.com Mapconverter CSV (mapconverter)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
@@ -1965,7 +2078,7 @@ accept.
 The steps for using GPSBabel and Mapconverter go something like this:
 </p><p>
 Step 1: Create a mapconverter file using gpsbabel.
-</p><pre class="screen">gpsbabel -i geo -f geocaching.loc -o mapconverter -F foo.txt</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i geo -f geocaching.loc -o mapconverter -F foo.txt</code></strong></p><p>
 Step 2: Launch mapconverter.exe and choose foo.txt as your input file.
        Click the begin button to have mapconverter process foo.txt.
 </p><p>
@@ -1989,23 +2102,21 @@ Mapconverter is no longer available from the Mapopolis website.  If you
   need a copy of mapconverter, ask on your local GPS Software discussion
   forum and I'm sure someone will have it.  As far as I know, It was never 
   actually acknowledged/supported by Mapopolis to begin with.
-</p></li></ul></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mxf"></a>MapTech Exchange Format (mxf)</h2></div></div></div><p>
+</p></li></ul></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_mxf"></a>MapTech Exchange Format (mxf)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>Maptech Exchange Format - Another CSV format file.  This
 format complies with (at least) Maptech Terrain Navigator, Terrain
 Professional, Take a Hike, and ExpertGPS import/export MFX.
-Contributed by Alex Mottram.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_msroute"></a>Microsoft AutoRoute 2002 (pin/route reader) (msroute)</h2></div></div></div><p>
+Contributed by Alex Mottram.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_msroute"></a>Microsoft AutoRoute 2002 (pin/route reader) (msroute)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read routes
-        </p></li></ul></div><p>
-  </p><p> Input support for Microsoft AutoRoute 2002-2006 .axe files
+        </p></li></ul></div><p> Input support for Microsoft AutoRoute 2002-2006 .axe files
 and Microsoft Streets and Trips .est files.
 These files contains only routes. We can extract the coordinates and
 the names of the points within route. An export to this format will
@@ -2018,12 +2129,11 @@ use the Streets and Trips drawing tools to trace a line over the
 interesting parts of the route to capture intersections or key turns.
 GPSBabel will capture stops in the route and insert those as turns, so 
 adding stops at intersections can also improve the results when converting.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_msroute1"></a>Microsoft Streets and Trips (pin/route reader) (msroute)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_msroute1"></a>Microsoft Streets and Trips (pin/route reader) (msroute)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read routes
-        </p></li></ul></div><p>
-  </p><p> Input support for Microsoft AutoRoute 2002-2006 .axe files
+        </p></li></ul></div><p> Input support for Microsoft AutoRoute 2002-2006 .axe files
 and Microsoft Streets and Trips .est files.
 These files contains only routes. We can extract the coordinates and
 the names of the points within route. An export to this format will
@@ -2036,28 +2146,27 @@ use the Streets and Trips drawing tools to trace a line over the
 interesting parts of the route to capture intersections or key turns.
 GPSBabel will capture stops in the route and insert those as turns, so 
 adding stops at intersections can also improve the results when converting.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_s_and_t"></a>Microsoft Streets and Trips 2002-2006 (s_and_t)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_s_and_t"></a>Microsoft Streets and Trips 2002-2006 (s_and_t)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
-</p><p> This is a format for importing into Microsoft Streets and
-Trips.  It's been exercised on versions 2003, 2004, and 2005. Detailed
+</p><p> This is a format for importing into 
+<a href="http://www.microsoft.com/streets/default.mspx" target="_top"> Microsoft Streets and
+Trips</a>.  It's been exercised on versions from 2003 through 2007. Detailed
 instructions on how to use it, including preserving hyperlinks, are at
 <a href="http://www.gpsbabel.org/formats/s_and_t/Importing_into_Microsoft_Streets_and_Trips_2003.html" target="_top">gpsbabel.org</a>
-         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_bcr"></a>Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)</h2></div></div></div><p>
+         </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_bcr"></a>Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
 This file format (extension .bcr) is used in Map&amp;Guide 
 <span class="productname">Motorrad Routenplaner 2002</span>™ and later versions. 
 BCR is a route-only format. If you own a newer release (2005 or later) you 
-may also use the XML export with GPSBabel's <a href="#fmt_tef" title="Map">tef</a> 
+may also use the XML export with GPSBabel's <a href="#fmt_tef" title="Map&amp;Guide 'TourExchangeFormat' XML (tef)">tef</a> 
 input format.  
 </p><p>
 There may be other products from Map&amp;Guide that use this format as well.
@@ -2066,7 +2175,7 @@ Coordinates are stored in a BCR file in a Mercator projection. The
 conversion from the Mercator projection to polar (latitude/longitude) 
 coordinates and back again may result in visible differences.  Experience 
 reports are welcome.
-</p><div class="example"><a id="sample_bcr_command"></a><p class="title"><b>Example 3.2. Sample BCR command with all options</b></p><pre class="screen">gpsbabel -r -i gpx -f in.gpx -o bcr,index=1,name="From A to B",radius=6371012 -F a_to_b.bcr</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_index"></a>index option</h3></div></div></div><p>
+</p><div class="example"><a id="sample_bcr_command"></a><p class="title"><b>Example 3.2. Sample BCR command with all options</b></p><div class="example-contents"><p><strong class="userinput"><code>gpsbabel -r -i gpx -f in.gpx -o bcr,index=1,name="From A to B",radius=6371012 -F a_to_b.bcr</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of route to write (if more the one in source).
     </p><p>
 Because the format supports only one route, this option may be used 
@@ -2074,13 +2183,13 @@ on output to select a single route from a collection of
 routes read from a more expressive format.  If you have, say, a 
 <a href="#fmt_gpx" title="GPX XML (gpx)">gpx</a> file that contains two routes, you may
 use this option to write them one at a time to individual files.
-</p><pre class="screen">gpsbabel -i gpx -f routes.gpx -o bcr,index=1 -F route1.bcr -o bcr,index=2 -F route2.bcr</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_name"></a>name option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f routes.gpx -o bcr,index=1 -F route1.bcr -o bcr,index=2 -F route2.bcr</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_name"></a><code class="option">name</code> option</h3></div></div></div><p>
       New name for the route.
     </p><p>
 This route specifies the name of the route.  This is particularly useful if
 the route came from an input format that did not support named routes, but 
 it may also be used to rename a route.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_radius"></a>radius option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_radius"></a><code class="option">radius</code> option</h3></div></div></div><p>
       Radius of our big earth (default 6371000 meters).
     </p><p>
 This option instructs GPSBabel to use a different value for the radius of 
@@ -2089,12 +2198,16 @@ coordinates.  The default value is 6371000.0 meters.
 </p><p>
 Careful experimentation with this value may help to reduce conversion
 errors.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_psp"></a>MS PocketStreets 2002 Pushpin (psp)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_bcr_o_prefer_shortnames"></a><code class="option">prefer_shortnames</code> option</h3></div></div></div><p>
+      Use shortname instead of description.
+    </p><p>
+This option causes GPSBabel to use the short name of the waypoint instead
+of the description.
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_psp"></a>MS PocketStreets 2002 Pushpin (psp)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 Microsoft's PocketStreets 2002 Pushpin (.PSP) format is
 not yet completely documented.  <span class="emphasis"><em>The .PSP module does not work with 
 MS Streets &amp; Trips 2002 .EST files</em></span>  To create .PSP files from
@@ -2110,40 +2223,40 @@ outside of the exported map area, the pin will be "grayed-out" and
 unused in PocketStreets. This is a good thing as it allows us to
 create one big .PSP file that covers multiple .MPS files.
 Unfortunately, you need one .PSP file for every .MPS file. 
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_psp_faq"></a>Frequently Asked Questions</h3></div></div></div><div class="qandaset"><dl><dt>1. <a href="#id2579168">
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_psp_faq"></a>Frequently Asked Questions</h3></div></div></div><div class="qandaset"><dl><dt>1. <a href="#why">
 Why should I use GPSBabel/psp to make pushpins when Streets &amp; Trips (S&amp;T)
    already does that for me?
-</a></dt><dt>2. <a href="#id2579209">
+</a></dt><dt>2. <a href="#blank">
 I keep getting a blank (32 byte) PSP file.
-</a></dt><dt>3. <a href="#id2579241">
+</a></dt><dt>3. <a href="#now_what">
 I've created a PSP file, now what do I do with it?
-</a></dt><dt>4. <a href="#id2579263">
+</a></dt><dt>4. <a href="#no_map">
 I don't have a map.  What do I do now?
-</a></dt><dt>5. <a href="#id2579289">
+</a></dt><dt>5. <a href="#have_est">
 I have .EST files, not .PSP files.  What's up with that?
-</a></dt><dt>6. <a href="#id2579309">
+</a></dt><dt>6. <a href="#coord_jitter">
  The .PSP files differ when I use GPSBabel/psp versus Pocketstreets to 
    create them.  What's up?
-</a></dt><dt>7. <a href="#id2579334">
+</a></dt><dt>7. <a href="#mappoint">
 Does GPSBabel/psp work with (Autoroute, Mappoint, etc..) .PSP files?
-</a></dt><dt>8. <a href="#id2579355">
+</a></dt><dt>8. <a href="#after2001">
  Does GPSBabel/psp work with (S&amp;T 2001, S&amp;T 2002, etc...) files?
-</a></dt><dt>9. <a href="#id2579377">
+</a></dt><dt>9. <a href="#non_us">
 Does GPSBabel/psp work with (insert your country/location here) maps?
-</a></dt><dt>10. <a href="#id2579402">
+</a></dt><dt>10. <a href="#wrong_coords">
 What do you mean S&amp;T writes points with the wrong coordinates?
-</a></dt><dt>11. <a href="#id2579434">
+</a></dt><dt>11. <a href="#splitting">
 I have 800 waypoints that cover a dozen or so Pocketstreets maps.  
    Do I need to to split my points up into smaller chunks to match the 
    area covered by the maps?
-</a></dt><dt>12. <a href="#id2579458">
+</a></dt><dt>12. <a href="#doc_for_layout">
 Where can I find documentation for the layout of PSP files?
-</a></dt><dt>13. <a href="#id2579478">
+</a></dt><dt>13. <a href="#morehelp">
 I have some other problem, what do I do?
-</a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%" /><tbody><tr class="question"><td align="left" valign="top"><a id="id2579168"></a><a id="id2579171"></a><b>1.</b></td><td align="left" valign="top"><p>
+</a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%" /><tbody><tr class="question"><td align="left" valign="top"><a id="why"></a><a id="id2579092"></a><b>1.</b></td><td align="left" valign="top"><p>
 Why should I use GPSBabel/psp to make pushpins when Streets &amp; Trips (S&amp;T)
    already does that for me?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 GPSBabel/psp has the advantage of being able to create pushpins 
 <span class="emphasis"><em>without</em></span>
    creating the associated map file and the need to "import" the waypoint
@@ -2155,139 +2268,135 @@ GPSBabel/psp has the advantage of being able to create pushpins
    <span class="emphasis"><em>with the proper coordinates</em></span> 
    where S&amp;T does not in some areas of the U.S. 
    (Nashville, TN for instance).
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579209"></a><a id="id2579211"></a><b>2.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="blank"></a><a id="id2579137"></a><b>2.</b></td><td align="left" valign="top"><p>
 I keep getting a blank (32 byte) PSP file.
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 There are either no points to write, or you have botched the command
    line for GPSBabel.  GPSBabel is sensitive to UPPER and lower case 
    on the command line.  A simple command line to create PSP files
    looks like this:
-</p><pre class="screen">gpsbabel -i geo -f geocaching.loc -o psp -F NewOrleans.psp</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i geo -f geocaching.loc -o psp -F NewOrleans.psp</code></strong></p><p>
    Note the use of "-f" for INPUT files and "-F" for OUTPUT files.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579241"></a><a id="id2579243"></a><b>3.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="now_what"></a><a id="id2579174"></a><b>3.</b></td><td align="left" valign="top"><p>
 I've created a PSP file, now what do I do with it?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 To use pushpins in Pocketstreets, you need to have both a map and a
    pushpin file.  These two files must exist in the same folder and have
    exactly the same base name as the map.  For example, the pins that 
    correspond to the map "NewOrleans.mps" should be named "NewOrleans.psp".  
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579263"></a><a id="id2579265"></a><b>4.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="no_map"></a><a id="id2579798"></a><b>4.</b></td><td align="left" valign="top"><p>
 I don't have a map.  What do I do now?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 Create one using the "Export map to Pocketstreets" option in S&amp;T.  You
    can also pick up some major city maps on the web from the MS Pocketstreets
    website if you are interested in seeing how it works.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579289"></a><a id="id2579291"></a><b>5.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="have_est"></a><a id="id2579828"></a><b>5.</b></td><td align="left" valign="top"><p>
 I have .EST files, not .PSP files.  What's up with that?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 In order to make PSP files, you need to use the "Export map to 
    Pocketstreets" function in S&amp;T.  .EST files are for use in S&amp;T, not 
    Pocketstreets.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579309"></a><a id="id2579311"></a><b>6.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="coord_jitter"></a><a id="id2579853"></a><b>6.</b></td><td align="left" valign="top"><p>
  The .PSP files differ when I use GPSBabel/psp versus Pocketstreets to 
    create them.  What's up?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 Pocketstreets makes corrections to the S&amp;T waypoint data upon initial 
    loading. GPSBabel/psp writes PSP files with these corrections already made.
    Ask MS.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579334"></a><a id="id2579336"></a><b>7.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="mappoint"></a><a id="id2579881"></a><b>7.</b></td><td align="left" valign="top"><p>
 Does GPSBabel/psp work with (Autoroute, Mappoint, etc..) .PSP files?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 As of this writing, I haven't seen any so I can't be sure.  If they 
    follow the same layout as S&amp;T 2002, I'd imagine so.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579355"></a><a id="id2579357"></a><b>8.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="after2001"></a><a id="id2579906"></a><b>8.</b></td><td align="left" valign="top"><p>
  Does GPSBabel/psp work with (S&amp;T 2001, S&amp;T 2002, etc...) files?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 MS changed the file layout between S&amp;T 2001 and S&amp;T 2002.  The GPSBabel psp
    module is known to work fine with S&amp;T 2002 and 2003.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579377"></a><a id="id2579379"></a><b>9.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="non_us"></a><a id="id2579932"></a><b>9.</b></td><td align="left" valign="top"><p>
 Does GPSBabel/psp work with (insert your country/location here) maps?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 If it doesn't, feel free to inquire on the 
 <a href="https://lists.sourceforge.net/lists/listinfo/gpsbabel-misc" target="_top">GPSBabel-Misc</a>
 mailing list.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579402"></a><a id="id2579404"></a><b>10.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="wrong_coords"></a><a id="id2579961"></a><b>10.</b></td><td align="left" valign="top"><p>
 What do you mean S&amp;T writes points with the wrong coordinates?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 At some point in the "Export map to Pocketstreets" function in S&amp;T,
    it goofs the lat/long data.  Points in Nashville tended to shift
    1.4 miles WEST of their original location.  I'm not a geometry buff,
    but I'd imagine they have a reference point for generating coordinates
    that's wrong in (at least) that area.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579434"></a><a id="id2579436"></a><b>11.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="splitting"></a><a id="id2579997"></a><b>11.</b></td><td align="left" valign="top"><p>
 I have 800 waypoints that cover a dozen or so Pocketstreets maps.  
    Do I need to to split my points up into smaller chunks to match the 
    area covered by the maps?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
  No.  Pocketstreets will "ignore" points that are outside of the map
    area.  Points that are not on the current map will be "grayed out"
    in pushpin explorer in Pocketsreets.  This is the reason the PSP 
    module was written for GPSBabel in the first place.
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579458"></a><a id="id2579460"></a><b>12.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="doc_for_layout"></a><a id="id2580024"></a><b>12.</b></td><td align="left" valign="top"><p>
 Where can I find documentation for the layout of PSP files?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 Just about everything I know about the PSP file format is documented 
    in the source.  To the best of my knowledge, there is no documentation 
    (and for good reason, I've come to discover). 
-</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id2579478"></a><a id="id2579481"></a><b>13.</b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="question"><td align="left" valign="top"><a id="morehelp"></a><a id="id2580049"></a><b>13.</b></td><td align="left" valign="top"><p>
 I have some other problem, what do I do?
-</p></td></tr><tr class="answer"><td align="left" valign="top"><b></b></td><td align="left" valign="top"><p>
+</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
 Ask your question on the <a href="https://lists.sourceforge.net/lists/listinfo/gpsbabel-misc" target="_top">GPSBabel-Misc</a> mailing list.
-</p></td></tr></tbody></table></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tpg"></a>National Geographic Topo .tpg (waypoints) (tpg)</h2></div></div></div><p>
+</p></td></tr></tbody></table></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tpg"></a>National Geographic Topo .tpg (waypoints) (tpg)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>National Geographic Topo! Waypoint and Route Format.  This module
+        </p></li></ul></div><p>National Geographic Topo! Waypoint and Route Format.  This module
 reads and writes .TPG files created by various editions of NG Topo!
-Reading/writing of route data is not supported yet.</p><p>Contributed by Alex Mottram.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tpg_o_datum"></a>datum option</h3></div></div></div><p>
+Reading/writing of route data is not supported yet.</p><p>Contributed by Alex Mottram.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tpg_o_datum"></a><code class="option">datum</code> option</h3></div></div></div><p>
       Datum (default=NAD27).
     </p><p>The option 'datum="datum name"' can be used to override
 the default of NAD27 ("N. America 1927 mean") which is correct for the
-continental U.S. Points in Hawaii should use "Old
-Hawaiian_mean"</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tpo2"></a>National Geographic Topo 2.x .tpo (tpo2)</h2></div></div></div><p>
+continental U.S.</p><p>Any legal <a href="#Datums" title="Appendix A. Supported Datums">datum supported
+by GPSBabel</a> may be used.  For example, points in Hawaii should 
+use "Old Hawaiian_mean".</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tpo2"></a>National Geographic Topo 2.x .tpo (tpo2)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read tracks
         </p></li></ul></div><p>
-  </p><p>
        This module reads tracks from .TPO files created by 
        National Geographic Topo! version 2.x
 </p><p>
        Contributed by Steve Chamberlin.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tpo3"></a>National Geographic Topo 3.x/4.x .tpo (tpo3)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tpo3"></a>National Geographic Topo 3.x/4.x .tpo (tpo3)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read routes
-        </p></li></ul></div><p>
-  </p><p>This module reads .TPO files created by National Geographic Topo! version
+        </p></li></ul></div><p>This module reads .TPO files created by National Geographic Topo! version
 3.x and 4.x.  It will read tracks, routes, waypoints, map notes, symbols, and
-text notes.  The latter three are converted to waypoints.</p><p>Contributed by Curt Mills.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_navicache"></a>Navicache.com XML (navicache)</h2></div></div></div><p>
+text notes.  The latter three are converted to waypoints.</p><p>Contributed by Curt Mills.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_navicache"></a>Navicache.com XML (navicache)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
-        </p></li></ul></div><p>
-  </p><p>This is the XML format that's used by Navicache.com for
+        </p></li></ul></div><p>This is the XML format that's used by Navicache.com for
 their geocaching data.  There are a number of fields in it that are
 marked "required" but are Navicache-specific, so GPSBabel can not
 write these files, but we can still read them. <a href="http://www.navicache.com/cgi-bin/ib312a/ikonboard.cgi?act=ST;f=23;t=334" target="_top">navicache.com</a>
-         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_navicache_o_noretired"></a>noretired option</h3></div></div></div><p>
+         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_navicache_o_noretired"></a><code class="option">noretired</code> option</h3></div></div></div><p>
       Suppress retired geocaches.
-    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_nmn4"></a>Navigon Mobile Navigator .rte files (nmn4)</h2></div></div></div><p>
+    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_nmn4"></a>Navigon Mobile Navigator .rte files (nmn4)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>Support for Navigon Mobile Navigator route (.rte) files.
+        </p></li></ul></div><p>Support for Navigon Mobile Navigator route (.rte) files.
 This is a very simple text format that only requires coordinates, but
 has fields for many other things.  We only write coordinates as fields
 like 'city' and 'street' cannot typically be populated from other
 formats. <a href="http://www.navigon.com" target="_top">www.navigon.com</a>
-         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmn4_o_index"></a>index option</h3></div></div></div><p>
+         </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmn4_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of route to write (if more the one in source).
     </p><p>
 Because the format supports only one route, this option may be used 
@@ -2295,23 +2404,21 @@ on output to select a single route from a collection of
 routes read from a more expressive format.  If you have, say, a 
 <a href="#fmt_gpx" title="GPX XML (gpx)">gpx</a> file that contains two routes, you may
 use this option to write them one at a time to individual files.
-</p><pre class="screen">gpsbabel -i gpx -f routes.gpx -o nmn4,index=1 -F route1.rte -o nmn4,index=2 -F route2.rte</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_dna"></a>Navitrak DNA marker format (dna)</h2></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f routes.gpx -o nmn4,index=1 -F route1.rte -o nmn4,index=2 -F route2.rte</code></strong></p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_dna"></a>Navitrak DNA marker format (dna)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>Navitrak DNA marker format - Another CSV format file. This
 is the format that is compatible with the DNA Desktop import/export
 command.  Reading the binary Markers.jwp format directly off the data
-card is not supported yet.  Contributed by Tim Zickus.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_netstumbler"></a>NetStumbler Summary File (text) (netstumbler)</h2></div></div></div><p>
+card is not supported yet.  Contributed by Tim Zickus.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_netstumbler"></a>NetStumbler Summary File (text) (netstumbler)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format reads summary files from <span class="productname">NetStumbler</span>™
 <span class="productnumber">0.4</span> or <span class="productname">MacStumbler</span>™.
 </p><p> 
@@ -2327,76 +2434,88 @@ changed with options.
 <a href="http://www.netstumbler.com/" target="_top">NetStumbler</a>
 </p><p>
 <a href="http://www.macstumbler.com/" target="_top">MacStumbler</a>   
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_nseicon"></a>nseicon option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_nseicon"></a><code class="option">nseicon</code> option</h3></div></div></div><p>
       Non-stealth encrypted icon name.
     </p><p>
 This option specifies the name of the icon to use for 
 non-stealth, encrypted access points.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_nsneicon"></a>nsneicon option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_nsneicon"></a><code class="option">nsneicon</code> option</h3></div></div></div><p>
       Non-stealth non-encrypted icon name.
     </p><p>
 This option specifies the name of the icon to use for 
 non-stealth, non-encrypted access points.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_seicon"></a>seicon option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_seicon"></a><code class="option">seicon</code> option</h3></div></div></div><p>
       Stealth encrypted icon name.
     </p><p>
 This option specifies the name of the icon to use for 
 stealth, encrypted access points.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_sneicon"></a>sneicon option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_sneicon"></a><code class="option">sneicon</code> option</h3></div></div></div><p>
       Stealth non-encrypted icon name.
     </p><p>
 This option specifies the name of the icon to use for 
 stealth, non-encrypted access points.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_snmac"></a>snmac option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_netstumbler_o_snmac"></a><code class="option">snmac</code> option</h3></div></div></div><p>
       Shortname is MAC address.
     </p><p>
 This option causes GPSBabel to use the MAC address as the short name for the
 waypoint.  The unmodified SSID is included in the waypoint description.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_nima"></a>NIMA/GNIS Geographic Names File (nima)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_nima"></a>NIMA/GNIS Geographic Names File (nima)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>This is a CSV format from the National Imagery and Mapping
-Agency.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_nmea"></a>NMEA 0183 sentences (nmea)</h2></div></div></div><p>
+Agency.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_nmea"></a>NMEA 0183 sentences (nmea)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li></ul></div><p>
-  </p><p> This format is the file representation of the NMEA 
+        </p></li></ul></div><p> This format is the file representation of the NMEA 
 (National Marine Electronics Association) 0183
 log and waypoint format for GPS devices.  Some hardware and software
 that work with NMEA-0183 formatted data include:
 </p><table class="simplelist" border="0" summary="Simple list"><tr><td>
   <a href="http://homepages.tig.com.au/~robk/datalogger.html" target="_top">GPS Data Logger</a>
 </td><td>
-  <a href="http://www.silcom.com/~rwhately/index.html" target="_top">NMEAlog</a>
+  <a href="http://www.visualgps.net/VisualGPSce/default.htm" target="_top">VisualGPS</a>
 </td><td>
-  <a href="http://www.kolumbus.fi/eino.uikkanen/geoconvgb/index.htm" target="_top">GeoConv</a>
+  <a href="http://www.sparkfun.com/" target="_top">SparkFun GPS Datalogger</a>
 </td></tr><tr><td>
   <a href="http://www.gpstm.com/eng/features_eng.htm " target="_top">GPS TrackMaker</a>
 </td><td>
-  <a href="http://www.visualgps.net/VisualGPSce/default.htm" target="_top">VisualGPS</a>
+  <a href="http://www.gpsu.co.uk/" target="_top">GPS Utility</a>
 </td><td>
-  <a href="http://www.commlinx.com.au/GPS_recorder.htm" target="_top">CommLinx GPS recorder</a>
+  <a href="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_DisplayProductInformation-Start?ProductSKU=GPSCS1" target="_top">Sony GPS-CS1</a>
 </td></tr><tr><td>
   <a href="http://www.gpsmaster.nl/ " target="_top">GPSMaster</a>
 </td><td>
-  <a href="http://www.gpsu.co.uk/" target="_top">GPS Utility</a>
+  <a href="http://www.kolumbus.fi/eino.uikkanen/geoconvgb/index.htm" target="_top">GeoConv</a>
+</td><td> </td></tr><tr><td>
+  <a href="http://www.silcom.com/~rwhately/index.html" target="_top">NMEAlog</a>
 </td><td>
-  <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=671" target="_top">SparkFun GPS Datalogger</a>
-</td></tr></table><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_snlen"></a>snlen option</h3></div></div></div><p>
+  <a href="http://www.commlinx.com.au/GPS_recorder.htm" target="_top">CommLinx GPS recorder</a>
+</td><td> </td></tr></table><p>
+This module also supports <a href="#tracking" title="Realtime tracking">realtime tracking</a> 
+which allows realtime position reports from a GPS, such as one connected 
+serially, over Bluetooth, or a USB module emulating a serial port, to be used
+with selected output formats.
+</p><p>
+When used in <a href="#tracking" title="Realtime tracking">realtime tracking</a> mode, if
+GPSBabel does not sense incoming NMEA sentences arriving from the port, it
+will send Sirf "reset to NMEA" commands to the port at a variety of speeds
+in an attempt to communicate with an attached GPS.   This lets devices
+like the Microsoft GPS or Pharos GPS that are Sirf chips with an integrated
+USB/Serial adapter work with this input format.
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Max length of waypoint name to write.
     </p><p>
 This option specifies the maximum length to be used for waypoint names in 
 the GPWPL sentence.  Longer names will be shortened to no more than this 
 length, but all waypoint names will remain unique.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gprmc"></a>gprmc option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gprmc"></a><code class="option">gprmc</code> option</h3></div></div></div><p>
       Read/write GPRMC sentences.
     </p><p>
 This option tells GPSBabel whether to read (on input) or write (on output) 
@@ -2406,7 +2525,7 @@ disable GPRMC sentences, specify <code class="option">gprmc=0</code>.
 GPRMC sentences contain the "recommended mimimum" positional information, 
 including date and time, heading, and velocity.  Note that they do not 
 include altitude.  For altitude, you will have to include GPGGA sentences.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gpgga"></a>gpgga option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gpgga"></a><code class="option">gpgga</code> option</h3></div></div></div><p>
       Read/write GPGGA sentences.
     </p><p>
 This option tells GPSBabel whether to read (on input) or write (on output) 
@@ -2414,7 +2533,7 @@ GPGGA sentences.  The default is to read or write GPGGA sentences.  To
 disable GPGGA sentences, specify <code class="option">gpgga=0</code>.
 </p><p>
 GPGGA sentences contain the location and quality of the GPS position fix.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gpvtg"></a>gpvtg option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gpvtg"></a><code class="option">gpvtg</code> option</h3></div></div></div><p>
       Read/write GPVTG sentences.
     </p><p>
 This option tells GPSBabel whether to read (on input) or write (on output) 
@@ -2424,7 +2543,7 @@ disable GPVTG sentences, specify <code class="option">gpvtg=0</code>.
 GPVTG sentences contain information about the heading and the speed at the
 time of the fix.  They do not contain any location information; for that 
 you will need either or both of GPGGA or GPRMC.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gpgsa"></a>gpgsa option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_gpgsa"></a><code class="option">gpgsa</code> option</h3></div></div></div><p>
       Read/write GPGSA sentences.
     </p><p>
 This option tells GPSBabel whether to read (on input) or write (on output) 
@@ -2435,7 +2554,7 @@ GPGSA sentences contain information on the quality of the positional fix
 and the individual satellites from which it was derived.  However, GPSBabel
 neither reads nor writes the individual satellite data.  On input, the 
 satellite fields are ignored and on output they are left blank.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_date"></a>date option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_date"></a><code class="option">date</code> option</h3></div></div></div><p>
       Complete date-free tracks with given date (YYYYMMDD)..
     </p><p>
 On input, track points with times but no dates will have this date applied.  
@@ -2443,11 +2562,11 @@ On input, track points with times but no dates will have this date applied.
 This is necessary because some NMEA sentences contain times but no dates.  If
 this option is not specified and the date cannot be determined from one or 
 more of the available NMEA sentences, the tracks will be discarded.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_get_posn"></a>get_posn option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_get_posn"></a><code class="option">get_posn</code> option</h3></div></div></div><p>
       Return current position as a waypoint.
     </p><p>This options, when specified, returns the current position as a single
 waypoint.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_pause"></a>pause option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_pause"></a><code class="option">pause</code> option</h3></div></div></div><p>
       Decimal seconds to pause between groups of strings.
     </p><p>
 This option tells GPSBabel to pause between individual track records when
@@ -2474,40 +2593,38 @@ be as much as plus or minus 100 milliseconds.
 If you are using this option with compressed or simplified tracks from 
 your handheld GPS receiver, you might find the 
 <a href="#filter_interpolate" title="Interpolate between trackpoints (interpolate)">interpolate</a> filter useful.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_baud"></a>baud option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nmea_o_baud"></a><code class="option">baud</code> option</h3></div></div></div><p>
       Speed in bits per second of serial port (baud=4800).
     </p><p>
 To the "nmea" module, the "baud" option specifies the baud rate of the
 serial connection when used with the real-time tracking option.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_ozi"></a>OziExplorer (ozi)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_ozi"></a>OziExplorer (ozi)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>OziExplorer Waypoint Format - Another CSV format file.
+        </p></li></ul></div><p>OziExplorer Waypoint Format - Another CSV format file.
 Tested against OziExplorer v 3.90.3a / Shareware. Contributed by Alex
-Mottram</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snlen"></a>snlen option</h3></div></div></div><p>
+Mottram</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Max synthesized shortname length.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snwhite"></a>snwhite option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snwhite"></a><code class="option">snwhite</code> option</h3></div></div></div><p>
       Allow whitespace synth. shortnames.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snupper"></a>snupper option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snupper"></a><code class="option">snupper</code> option</h3></div></div></div><p>
       UPPERCASE synth. shortnames.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snunique"></a>snunique option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_snunique"></a><code class="option">snunique</code> option</h3></div></div></div><p>
       Make synth. shortnames unique.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_wptfgcolor"></a>wptfgcolor option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_wptfgcolor"></a><code class="option">wptfgcolor</code> option</h3></div></div></div><p>
       Waypoint foreground color.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_wptbgcolor"></a>wptbgcolor option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_ozi_o_wptbgcolor"></a><code class="option">wptbgcolor</code> option</h3></div></div></div><p>
       Waypoint background color.
-    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_palmdoc"></a>PalmDoc Output (palmdoc)</h2></div></div></div><p>
+    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_palmdoc"></a>PalmDoc Output (palmdoc)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write waypoints
-        </p></li></ul></div><p>
-  </p><p> 
+        </p></li></ul></div><p> 
 PalmDoc output is similar to <a href="#fmt_text" title="Textual Output (text)">Text</a>
 output, except that it generates a Palm Database (PDB) file suitable for 
 use with programs like CSpotRun, TealDoc, AportisDoc, Palm Reader, and 
@@ -2516,25 +2633,25 @@ to a particular waypoint.
 </p><p> 
 The following command line reads a GPX file with Groundspeak extensions 
 and writes a Palm document with encrypted hints and logs:
-</p><pre class="screen">gpsbabel -i gpx -f 12345.gpx -o "palmdoc,dbname=Unfound Geocaches,encrypt,logs" -F 12345.pdb</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_nosep"></a>nosep option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f 12345.gpx -o "palmdoc,dbname=Unfound Geocaches,encrypt,logs" -F 12345.pdb</code></strong></p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_nosep"></a><code class="option">nosep</code> option</h3></div></div></div><p>
       No separator lines between waypoints.
     </p><p>
 To suppress the dashed lines between waypoints, use this option.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_dbname"></a>dbname option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name.
     </p><p>
 This option specifies the internal name for the document.  This is the name
 that appears in your document reader, not the name of the file that is created
 on your computer.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_encrypt"></a>encrypt option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_encrypt"></a><code class="option">encrypt</code> option</h3></div></div></div><p>
       Encrypt hints with ROT13.
     </p><p>
 Use this option to encrypt hints from Groundspeak GPX files.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_logs"></a>logs option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_logs"></a><code class="option">logs</code> option</h3></div></div></div><p>
       Include groundspeak logs if present.
     </p><p>
 Use this option to include Groundspeak cache logs in the created document.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_bookmarks_short"></a>bookmarks_short option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_palmdoc_o_bookmarks_short"></a><code class="option">bookmarks_short</code> option</h3></div></div></div><p>
       Include short name in bookmarks.
     </p><p>
 If you would like the generated bookmarks to start with
@@ -2542,41 +2659,39 @@ the short name for the waypoint, specify this option.
 </p><p>
 This is particularly useful when used in combination with the 'sort'
 filter.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_pathaway"></a>PathAway Database for Palm/OS (pathaway)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_pathaway"></a>PathAway Database for Palm/OS (pathaway)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p> PathAway is a Palm software designed for handling "most"
+        </p></li></ul></div><p> PathAway is a Palm software designed for handling "most"
 GPS devices (including BlueTooth). In this time (I mean 2005) a free
 tool to convert this database is located on the homepage of PathAway
 (www.pathaway.com). But I've read there ... for windows and the output
 formats are also very limited.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_date"></a>date option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_date"></a><code class="option">date</code> option</h3></div></div></div><p>
       Read/Write date format (i.e. DDMMYYYY).
     </p><p>
 This option specifies the input and output format for the date.  The format 
 is written similarly to those in Windows.  An example format is "YYMMDD".
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_dbname"></a>dbname option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name.
     </p><p>
 This option specifies the database name for the output file.  This name is
 not the same thing as the file name on your computer; this is the name that
 appears in the file browser on your handheld.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_deficon"></a>deficon option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_deficon"></a><code class="option">deficon</code> option</h3></div></div></div><p>
       Default icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_snlen"></a>snlen option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_pathaway_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Length of generated shortnames.
-    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_quovadis"></a>Quovadis (quovadis)</h2></div></div></div><p>
+    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_quovadis"></a>Quovadis (quovadis)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p> QuoVadis for Palm OS <a href="http://www.marcosoft.com/" target="_top">marcosoft.com</a> is a program for
+        </p></li></ul></div><p> QuoVadis for Palm OS <a href="http://www.marcosoft.com/" target="_top">marcosoft.com</a> is a program for
 Palm/OS. Working with record definitions provided by MarcoSoft and
 further experimentation by Bruce Thompson and "Fuzzy" from the
 Geocaching Forums to nail down the format precisely.</p><p> Should work fine for import and export.</p><p> One thing of note, QuoVadis stores all waypoints in a
@@ -2589,18 +2704,30 @@ joining capabilities generate a new PDB file from the personal file
 and the other waypoint files of interest.</p><p> Currently the selection of icons to display and the scale
 at which to display them is hardcoded. Also there is no support for
 notes associated with waypoints. This will be addressed in a future
-revision.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_quovadis_o_dbname"></a>dbname option</h3></div></div></div><p>
+revision.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_quovadis_o_dbname"></a><code class="option">dbname</code> option</h3></div></div></div><p>
       Database name.
     </p><p>
 This option specifies the database name for the output file.  This name is
 not the same thing as the file name on your computer; this is the name that
 appears in the file browser on your handheld.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cup"></a>See You flight analysis data (cup)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_raymarine"></a>Raymarine Waypoint File (.rwf) (raymarine)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
+          read and write waypoints
+        </p></li><li><p class="fmtcapsitem">
+          read and write routes
+        </p></li></ul></div><p>
+  This format supports the "Raymarine Waypoint File" format (.rwf).
+  More information to Raymarine you'll find at their <a href="http://www.raymarine.com" target="_top">homepage</a>.
+</p><p>
+  Known limits: max. 16 characters for waypoint names and max. 50 waypoints per route.
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_raymarine_o_location"></a><code class="option">location</code> option</h3></div></div></div><p>
+      Default location.
+    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_cup"></a>See You flight analysis data (cup)</h2></div></div></div><p class="fmtcapshdr">
+    This format can...
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
@@ -2613,12 +2740,11 @@ format, so it has all of the same options as that format.
   written as blanks and ignored on read.
 </p><p>
   Tasks are not supported.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_sportsim"></a>Sportsim track files (part of zipped .ssz files) (sportsim)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_sportsim"></a>Sportsim track files (part of zipped .ssz files) (sportsim)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p>
@@ -2631,14 +2757,13 @@ format, so it has all of the same options as that format.
 </p><p>
        Sportsim provide software applications and web-based graphically 
        simulated performance information and image solutions to outdoor active people.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_stmsdf"></a>Suunto Trek Manager (STM) .sdf files (stmsdf)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_stmsdf"></a>Suunto Trek Manager (STM) .sdf files (stmsdf)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
        This format supports the .sdf files from the Suunto product family
        'Suunto Trek Manager', 'Suunto Ski Manager' and 'Suunto Sail Manager'.
        The contents of the sdf file depends on the used product and can
@@ -2649,11 +2774,9 @@ format, so it has all of the same options as that format.
 </p><p>
        Currently we can read the following file types:
        </p><table class="simplelist" border="0" summary="Simple list"><tr><td>4 = M9 TrackLog</td></tr><tr><td>5 = Route</td></tr><tr><td>28 = X9 TrackLog</td></tr></table><p>
-</p><p>
-       </p><pre class="screen">gpsbabel -i gpx -f some-routes.gpx -r -o stmsdf,index=3 -F single-route.sdf</pre><p>
-</p><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f some-routes.gpx -r -o stmsdf,index=3 -F single-route.sdf</code></strong></p><p>
        <a href="http://www.suunto.fi" target="_top">Suunto Website</a>
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_stmsdf_o_index"></a>index option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_stmsdf_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of route (if more the one in source).
     </p><p>
        Convert route number 'index' from source into sdf format.
@@ -2665,26 +2788,22 @@ format, so it has all of the same options as that format.
        Our default index is 1.
 </p><p>
        This example will convert route number two and three into separate sdf files:
-       </p><pre class="screen">
-               gpsbabel -i gdb -f routes.gdb -r -o stmsdf,index=2 -F route-one.sdf -r -o stmsdf,index=3 -F route-three.sdf
-       </pre><p>
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_stmwpp"></a>Suunto Trek Manager (STM) WaypointPlus files (stmwpp)</h2></div></div></div><p>
+</p><p><strong class="userinput"><code> gpsbabel -i gdb -f routes.gdb -r -o stmsdf,index=2 -F route-one.sdf -r -o stmsdf,index=3 -F route-three.sdf </code></strong></p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_stmwpp"></a>Suunto Trek Manager (STM) WaypointPlus files (stmwpp)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
         </p></li></ul></div><p>
-  </p><p>
 This format supports the Suunto Trek Manager (STM) WaypointPlus format.
 This is a simple format with coordinates and a time stamp.  Route points 
 also have a short name.  A single file may only contain one route or one
 track.
 </p><p>
 <a href="http://www.suunto.fi" target="_top">Suunto Website</a>
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_stmwpp_o_index"></a>index option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_stmwpp_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of route/track to write (if more the one in source).
     </p><p>
 Because the format supports only one route or track, this option may be used 
@@ -2692,58 +2811,55 @@ on output to select a single route or track from a collection of routes and
 tracks read from a more expressive format.  If you have, say, a 
 <a href="#fmt_gpx" title="GPX XML (gpx)">gpx</a> file that contains three routes, you may
 use this option to write them one at a time to individual files.
-</p><pre class="screen">gpsbabel -i gpx -f routes.gpx -o stmwpp,index=1 -F route1.txt -o stmwpp,index=2 -F route2.txt -o stmwpp,index=3 -F route3.txt</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_openoffice"></a>Tab delimited fields useful for OpenOffice, Ploticus etc. (openoffice)</h2></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f routes.gpx -o stmwpp,index=1 -F route1.txt -o stmwpp,index=2 -F route2.txt -o stmwpp,index=3 -F route3.txt</code></strong></p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_openoffice"></a>Tab delimited fields useful for OpenOffice, Ploticus etc. (openoffice)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format is derived from the <a href="#fmt_xcsv" title="? Character Separated Values (xcsv)">xcsv</a>
 format, so it has all of the same options as that format.
 </p><p> Tab seperated export-all (except geocaching data) file
 format.  Intended to serve as source for number-processing
 applications like OpenOffice, Ploticus and others. Tab was chosen as
 delimiter because it is a) supported by both OpenOffice and Ploticus
-and b) is not ',', so you can use <span><strong class="command">sed -i
-"s/./,/g" &lt;x&gt;.csv'</strong></span> to adapt it to locales where ',' is
-used as decimal seperator.  Contributed by Tobias Minich.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_text"></a>Textual Output (text)</h2></div></div></div><p>
+and b) is not ',', so you can use <strong class="userinput"><code>sed -i
+"s/./,/g" &lt;x&gt;.csv'</code></strong> to adapt it to locales where ',' is
+used as decimal seperator.  Contributed by Tobias Minich.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_text"></a>Textual Output (text)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write waypoints
-        </p></li></ul></div><p>
-  </p><p> This is a simple human readable version of the data file,
+        </p></li></ul></div><p> This is a simple human readable version of the data file,
 handy for listings of any type of waypoint files.
 </p><p> The following command line reads a GPX file with
 Groundspeak extensions and writes a text file with encrypted hints:
-</p><pre class="screen">gpsbabel -i gpx -f 12345.gpx -o text,encrypt -F 12345.txt</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_nosep"></a>nosep option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f 12345.gpx -o text,encrypt -F 12345.txt</code></strong></p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_nosep"></a><code class="option">nosep</code> option</h3></div></div></div><p>
       Suppress separator lines between waypoints.
     </p><p>
 To suppress the dashed lines between waypoints, use this option.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_encrypt"></a>encrypt option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_encrypt"></a><code class="option">encrypt</code> option</h3></div></div></div><p>
       Encrypt hints using ROT13.
     </p><p>
 Use this option to encrypt hints from Groundspeak GPX files.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_logs"></a>logs option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_logs"></a><code class="option">logs</code> option</h3></div></div></div><p>
       Include groundspeak logs if present.
     </p><p>
 Use this option to include Groundspeak cache logs in the created document.  
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_degformat"></a>degformat option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_degformat"></a><code class="option">degformat</code> option</h3></div></div></div><p>
       Degrees output as 'ddd', 'dmm'(default) or 'dms'.
     </p><p>
 When GPSBabel writes coordinates, this option is consulted to see if it
 should write decimal degrees ('ddd') decimal minutes ('dmm') or degrees,
 minutes, seconds ('dms').  The default is 'dmm'.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_altunits"></a>altunits option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_text_o_altunits"></a><code class="option">altunits</code> option</h3></div></div></div><p>
       Units for altitude (f)eet or (m)etres.
     </p><p>
 This option should be 'f' if you want the altitude expressed in feet and
 'm' for meters.  The default is 'f'.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tomtom"></a>TomTom POI file (tomtom)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tomtom"></a>TomTom POI file (tomtom)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p> This format can read and write TomTom .ov2 (POI) files,
+        </p></li></ul></div><p> This format can read and write <a href="http://www.tomtom.com" target="_top">TomTom</a> .ov2 (POI) files,
 as used by the TomTom GO and TomTom Navigator.  It has been tested
 with an original TomTom GO running version 5.00 of the TomTom
 software.  There may be some records that confuse the input module -
@@ -2752,24 +2868,22 @@ restricted from sharing it, we encourage you to post to the
 gpsbabel-misc mailing list to contact a developer.</p><p> Note that in addition to the .ov2 file, you will need a
 .bmp file for the icon.  It should be 22x22 and 16 colors, and have
 the same name (not including the extension) as the .ov2 file.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tmpro"></a>TopoMapPro Places File (tmpro)</h2></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tmpro"></a>TopoMapPro Places File (tmpro)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>TopoMapPro Places File.  Reads and writes places files for
-use in TopoMapPro <a href="http://www.topomappro.com" target="_top">topomappro.com</a>).  As this file
+        </p></li></ul></div><p>Reads and writes places files for
+use in <a href="http://www.topomappro.com" target="_top">TopoMapPro places files</a>.  As this file
 type can store links other than web links, anything that is not a http
 url will be discarded.  Note that this does not do datum conversions,
 so if your input file does not have WGS84/NZGD2000 data, your output
-file won't either. Colour of waypoint icons defaults to red.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_dmtlog"></a>TrackLogs digital mapping (.trl) (dmtlog)</h2></div></div></div><p>
+file won't either. Colour of waypoint icons defaults to red.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_dmtlog"></a>TrackLogs digital mapping (.trl) (dmtlog)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
         </p></li></ul></div><p>
-  </p><p>
        This format can be used to convert files from
        <a href="http://www.tracklogs.co.uk" target="_top">TrackLogs Digital Mapping</a>. The files 
        have extension .trl and can contain waypoints and tracks.
@@ -2777,7 +2891,7 @@ file won't either. Colour of waypoint icons defaults to red.</p></div><div class
        We have seen three different types of this format. Two are binary 
        and one is an XML based format.  All three types are supported 
        by our reader.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_dmtlog_o_index"></a>index option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_dmtlog_o_index"></a><code class="option">index</code> option</h3></div></div></div><p>
       Index of track (if more the one in source).
     </p><p>
    Convert track number 'index' from source into dmtlog format.
@@ -2791,20 +2905,19 @@ file won't either. Colour of waypoint icons defaults to red.</p></div><div class
 </p><p>
    An example usage you can find at the <a href="#fmt_ignrando" title="IGN Rando track files (ignrando)">ignrando</a> format,
    which uses option <a href="#fmt_ignrando_o_index" title="index option">index</a> in same manner.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tiger"></a>U.S. Census Bureau Tiger Mapping Service (tiger)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_tiger"></a>U.S. Census Bureau Tiger Mapping Service (tiger)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li></ul></div><p>
-  </p><p>The U.S. Census Bureau provides online mapping facilities.
+        </p></li></ul></div><p>The U.S. Census Bureau provides online mapping facilities.
 This format is described at: <a href="http://tiger.census.gov/instruct.html" target="_top">tiger.census.gov</a>.
 Do notice that this format is not the actual Tiger line mapping
 records, but rather the interface to their online mapping
-program.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_nolabels"></a>nolabels option</h3></div></div></div><p>
+program.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_nolabels"></a><code class="option">nolabels</code> option</h3></div></div></div><p>
       Suppress labels on generated pins.
     </p><p>This option tells GPSBabel to not generate labels on the pins.   If
 this is true, the description of the incoming waypoints are ignored and not
-placed on the pins.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_genurl"></a>genurl option</h3></div></div></div><p>
+placed on the pins.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_genurl"></a><code class="option">genurl</code> option</h3></div></div></div><p>
       Generate file with lat/lon for centering map.
     </p><p>
 genurl is a convenience option for generating the scaling paramaters
@@ -2812,66 +2925,65 @@ when accessing the Tiger servers.  It will output the latitude, longitude,
 height, and width parameters in a form suitable for use in the URL to generate
 a map that will hold all the points to be displayed  and is suitably scaled
 and centered.   
-</p><p>For example:
-</p><pre class="screen">gpsbabel -i geo -f geocaching.loc -o tiger,genurl=tiger.ctr -F tiger.dat</pre><p>
+</p><p>For example:</p><p><strong class="userinput"><code>gpsbabel -i geo -f geocaching.loc -o tiger,genurl=tiger.ctr -F tiger.dat</code></strong></p><p>
 may create tiger.ctr with
-</p><pre class="screen">lat=36.042108&amp;lon=-86.877408&amp;ht=0.161172&amp;wid=0.591771&amp;iwd=768&amp;iht=768</pre><p>
+</p><pre class="screen">
+lat=36.042108&amp;lon=-86.877408&amp;ht=0.161172&amp;wid=0.591771&amp;iwd=768&amp;iht=768</pre><p>
 
 After uploading tiger.dat to a public server, a request to 
 </p><pre class="screen"> http://tiger.census.gov/cgi-bin/mapgen?murl=$THATFILE$(cat tiger.ctr)</pre><p>
 will return a gif file from the tiger server that's suitably scaled.
 
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_margin"></a>margin option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_margin"></a><code class="option">margin</code> option</h3></div></div></div><p>
       Margin for map.  Degrees or percentage.
     </p><p>This option specifies a margin around the maps for the genurl options.
 The margin may be specified in either decimal degrees or as a 
 percentage.</p><p>
 This option is most useful for ensuring there is adaequate space for
 the label around the markers when generating automatically scaled maps.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_snlen"></a>snlen option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_snlen"></a><code class="option">snlen</code> option</h3></div></div></div><p>
       Max shortname length when used with -s.
     </p><p>
 The snlen option controls the maximum length of names generated by the '-s'
 option.  It's particularly useful in Tiger maps to avoid the amount of clutter
 generated by potentially lengthy labels on the markers.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_oldthresh"></a>oldthresh option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_oldthresh"></a><code class="option">oldthresh</code> option</h3></div></div></div><p>
       Days after which points are considered old.
     </p><p>This options allows you to control the threshold in days between
 whether a pin is considered "new" (and thus potentially governed by the
 'newmarker' option) or "old" (and thus potentially governed by the 
 'oldmarker' option).
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_oldmarker"></a>oldmarker option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_oldmarker"></a><code class="option">oldmarker</code> option</h3></div></div></div><p>
       Marker type for old points.
     </p><p>This option specifies the pin to be used if a waypoint has a creation
-time newer than 'oldthresh' days.</p><p>The default is "redpin".</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_newmarker"></a>newmarker option</h3></div></div></div><p>
+time newer than 'oldthresh' days.</p><p>The default is "redpin".</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_newmarker"></a><code class="option">newmarker</code> option</h3></div></div></div><p>
       Marker type for new points.
     </p><p>This option specifies the pin to be used if a waypoint has a creation
-time older than 'oldthresh' days.</p><p>The default is "greenpin".</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_suppresswhite"></a>suppresswhite option</h3></div></div></div><p>
+time older than 'oldthresh' days.</p><p>The default is "greenpin".</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_suppresswhite"></a><code class="option">suppresswhite</code> option</h3></div></div></div><p>
       Suppress whitespace in generated shortnames.
     </p><p>
 When set, this options tells the '-s' smartname generator to not allow 
 any spaces in the labels generated for markers.
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_unfoundmarker"></a>unfoundmarker option</h3></div></div></div><p>
+</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_unfoundmarker"></a><code class="option">unfoundmarker</code> option</h3></div></div></div><p>
       Marker type for unfound points.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_xpixels"></a>xpixels option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_xpixels"></a><code class="option">xpixels</code> option</h3></div></div></div><p>
       Width in pixels of map.
     </p><p>The xpixels argument lets you specify the number of pixels to be
 generated by the Tiger server along the horizontal axis when using the 
-'genurl' option.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_ypixels"></a>ypixels option</h3></div></div></div><p>
+'genurl' option.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_ypixels"></a><code class="option">ypixels</code> option</h3></div></div></div><p>
       Height in pixels of map.
     </p><p>The ypixels argument lets you specify the number of pixels to be
 generated by the Tiger server along the vertical axis when using the
-'genurl' option.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_iconismarker"></a>iconismarker option</h3></div></div></div><p>
+'genurl' option.  </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_tiger_o_iconismarker"></a><code class="option">iconismarker</code> option</h3></div></div></div><p>
       The icon description is already the marker.
     </p><p> This options signifies that the icon in the incoming format is to be used
 without change in the generated Tiger output file.  Without this option,
 GPSBabel tries to color pins based on their creation time and certain 
-Geocaching traits when available.</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_unicsv"></a>Universal csv with field structure in first line (unicsv)</h2></div></div></div><p>
+Geocaching traits when available.</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_unicsv"></a>Universal csv with field structure in first line (unicsv)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
         </p></li></ul></div><p>
-  </p><p>
        Unicsv examines the first line of a file to determine the field
        order and field separator in that file.   It is thus read-only format.
        </p><p>
@@ -2880,7 +2992,7 @@ Geocaching traits when available.</p></div></div><div class="section" lang="en"
        separated by commas.
        </p><p>
        The list of keywords include "lat", "lon", "desc", "name", 
-       "notes", "alt", "utm z", "utm n", "utm e", and "url".   
+       "notes", "alt", "utm z", "utm n", "utm e", "utm c" and "url".   
        Fuller spellings (i.e. "longitude") may be used.
        </p><p>
        A typical file may be:
@@ -2889,12 +3001,11 @@ Geocaching traits when available.</p></div></div><div class="section" lang="en"
        GCEBB,35.972033,-87.134700,Mountain Bike Heaven by susy1313
        GC1A37,36.090683,-86.679550,The Troll by a182pilot &amp; Family
        </pre><p>
-       </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_vcard"></a>Vcard Output (for iPod) (vcard)</h2></div></div></div><p>
+       </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_vcard"></a>Vcard Output (for iPod) (vcard)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           write waypoints
-        </p></li></ul></div><p>
-  </p><p>The vCard output is intended to be in a format that
+        </p></li></ul></div><p>The vCard output is intended to be in a format that
 enables waypoints to be viewed with an Apple iPod. This is achieved by
 mapping waypoint fields into vCard fields that can be displayed as
 'Contacts' on the iPod. With the iPod mounted as a hard disk (see your
@@ -2902,68 +3013,63 @@ iPod manual for instructions), the resulting VCF file should be moved
 into the iPod 'Contacts' folder. As an alternative, Mac OS X users may
 prefer to drag the VCF file into their address book and synchronize
 with the iPod using iSync. 
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_vcard_o_encrypt"></a>encrypt option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_vcard_o_encrypt"></a><code class="option">encrypt</code> option</h3></div></div></div><p>
       Encrypt hints using ROT13.
     </p><p>
 By default geocaching hints are unencrypted; use this option to encrypt them.
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_vitosmt"></a>Vito Navigator II tracks (vitosmt)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_vitosmt"></a>Vito Navigator II tracks (vitosmt)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read and write waypoints
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write tracks
-        </p></li><li><p>
+        </p></li><li><p class="fmtcapsitem">
           read and write routes
-        </p></li></ul></div><p>
-  </p><p>Vito Navigator II is a Pocket PC GPS application.  This
+        </p></li></ul></div><p>Vito Navigator II is a Pocket PC GPS application.  This
 format reads a Vito Navigator II .SMT track file and can work in
 either waypoint or track mode.  The speed, heading and Dilution of
 Position data is written in the notes field.</p><p> Support for writing .SMT tracks is very experimental and
-may crash VitoNavigator II on the Pocket PC.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_wfff"></a>WiFiFoFum 2.0 for PocketPC XML (wfff)</h2></div></div></div><p>
+may crash VitoNavigator II on the Pocket PC.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_wfff"></a>WiFiFoFum 2.0 for PocketPC XML (wfff)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
-        </p></li></ul></div><p>
-  </p><p> WFFF is the export format for Aspecto Software's WiFiFoFum 2.0 for Windows Mobile PCs.</p><p>It is a simple XML format that is read-only to GPSBabel and stores information about a WiFi stumbling session.</p><p>All WiFi-specific elements are written in the description  field, similar to the netstumbler format.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_aicicon"></a>aicicon option</h3></div></div></div><p>
+        </p></li></ul></div><p> WFFF is the export format for Aspecto Software's WiFiFoFum 2.0 for Windows Mobile PCs.</p><p>It is a simple XML format that is read-only to GPSBabel and stores information about a WiFi stumbling session.</p><p>All WiFi-specific elements are written in the description  field, similar to the netstumbler format.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_aicicon"></a><code class="option">aicicon</code> option</h3></div></div></div><p>
       Infrastructure closed icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_aioicon"></a>aioicon option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_aioicon"></a><code class="option">aioicon</code> option</h3></div></div></div><p>
       Infrastructure open icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_ahcicon"></a>ahcicon option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_ahcicon"></a><code class="option">ahcicon</code> option</h3></div></div></div><p>
       Ad-hoc closed icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_ahoicon"></a>ahoicon option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_ahoicon"></a><code class="option">ahoicon</code> option</h3></div></div></div><p>
       Ad-hoc open icon name.
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_snmac"></a>snmac option</h3></div></div></div><p>
+    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wfff_o_snmac"></a><code class="option">snmac</code> option</h3></div></div></div><p>
       Shortname is MAC address.
-    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_wbt-bin"></a>Wintec WBT-100/200 Binary file format (wbt-bin)</h2></div></div></div><p>
+    </p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_wbt-bin"></a>Wintec WBT-100/200 Binary file format (wbt-bin)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read tracks
-        </p></li></ul></div><p>
-  </p><p>File protocol for the <span class="productname">Wintec WBT-200</span>™
+        </p></li></ul></div><p>File protocol for the <span class="productname">Wintec WBT-200</span>™
 GPS data logger. This format reads the binary file format created
 by Wintec's Windows application.</p><p>
 <a href="http://www.semsons.com/wi3mugpsrebt.html" target="_top">Wintec WBT-200 </a>
-</p><div class="example"><a id="wbt-bin-on-macos"></a><p class="title"><b>Example 3.3. Command showing conversion of a Wintec binary file to GPX</b></p><pre class="screen">gpsbabel -i wbt-bin -f tracks.bin -o
-gpx -F out.gpx</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_wbt"></a>Wintec WBT-100/200 GPS Download (wbt)</h2></div></div></div><p>
+</p><div class="example"><a id="wbt-bin-on-macos"></a><p class="title"><b>Example 3.3. Command showing conversion of a Wintec binary file to GPX</b></p><div class="example-contents"><p><strong class="userinput"><code>gpsbabel -i wbt-bin -f tracks.bin -o
+gpx -F out.gpx</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_wbt"></a>Wintec WBT-100/200 GPS Download (wbt)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read tracks
-        </p></li></ul></div><p>
-  </p><p>Serial download protocol for the <span class="productname">Wintec WBT-200</span>™ GPS data logger. Although untested it is expected that this will also support the WBT-100.</p><p>
+        </p></li></ul></div><p>Serial download protocol for the <span class="productname">Wintec WBT-200</span>™ GPS data logger. Although untested it is expected that this will also support the WBT-100.</p><p>
 <a href="http://www.semsons.com/wi3mugpsrebt.html" target="_top">Wintec WBT-200</a>
-</p><div class="example"><a id="wbt-on-macos"></a><p class="title"><b>Example 3.4. Command showing WBT-200 download and erase over Bluetooth on Mac OS X</b></p><pre class="screen">gpsbabel -i wbt,erase -f /dev/cu.WBT200-SPPslave-1 -o gpx -F out.gpx</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wbt_o_erase"></a>erase option</h3></div></div></div><p>
+</p><div class="example"><a id="wbt-on-macos"></a><p class="title"><b>Example 3.4. Command showing WBT-200 download and erase over Bluetooth on Mac OS X</b></p><div class="example-contents"><p><strong class="userinput"><code>gpsbabel -i wbt,erase -f /dev/cu.WBT200-SPPslave-1 -o gpx -F out.gpx</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_wbt_o_erase"></a><code class="option">erase</code> option</h3></div></div></div><p>
       Erase device data after download.
-    </p><p>This option erases the track log from the device after download.</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_yahoo"></a>Yahoo Geocode API data (yahoo)</h2></div></div></div><p>
+    </p><p>This option erases the track log from the device after download.</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="fmt_yahoo"></a>Yahoo Geocode API data (yahoo)</h2></div></div></div><p class="fmtcapshdr">
     This format can...
-    </p><div class="itemizedlist"><ul type="disc"><li><p>
+    </p><div class="itemizedlist"><ul type="disc"><li><p class="fmtcapsitem">
           read waypoints
         </p></li></ul></div><p>
-  </p><p>
 This format reads output from the 
 <a href="http://developer.yahoo.com/maps/rest/V1/geocode.html" target="_top">Yahoo geocoding API</a>.  
 This feature of GPSBabel makes it easy to get geocoded results from 
 Yahoo into your favorite mapping program, GPS receiver, or other format.
-</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_yahoo_o_addrsep"></a>addrsep option</h3></div></div></div><p>
+</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_yahoo_o_addrsep"></a><code class="option">addrsep</code> option</h3></div></div></div><p>
       String to separate concatenated address fields (default=", ").
     </p><p>
 This option specifies the string GPSBabel should use to separate the parts
@@ -2972,7 +3078,7 @@ not support street addresses, the street address fields from the Yahoo file
 are concatenated into the waypoint "notes" field.
 </p><p>
 The default value for this option is a comma followed by a space (", ").
-</p></div></div><div class="footnotes"><br /><hr width="100" align="left" /><div class="footnote"><p><sup>[<a id="ftn.gpx" href="#gpx">1</a>] </sup>This unit uses GPX format, not Garmin protocol.  Therefore one should communicate with it by reading and writing GPX files instead of using this format.</p></div></div></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Data_Filters"></a>Chapter 4. Data Filters</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#filter_polygon">Include Only Points Inside Polygon (polygon)</a></span></dt><dt><span class="section"><a href="#filter_arc">Include Only Points Within Distance of Arc (arc)</a></span></dt><dt><span class="section"><a href="#filter_radius">Include Only Points Within Radius (radius)</a></span></dt><dt><span class="section"><a href="#filter_interpolate">Interpolate between trackpoints (interpolate)</a></span></dt><dt><span class="section"><a href="#filter_track">Manipulate track lists (track)</a></span></dt><dt><span class="section"><a href="#filter_sort">Rearrange waypoints by resorting (sort)</a></span></dt><dt><span class="section"><a href="#filter_nuketypes">Remove all waypoints, tracks, or routes (nuketypes)</a></span></dt><dt><span class="section"><a href="#filter_duplicate">Remove Duplicates (duplicate)</a></span></dt><dt><span class="section"><a href="#filter_position">Remove Points Within Distance (position)</a></span></dt><dt><span class="section"><a href="#filter_discard">Remove unreliable points with high hdop or vdop (discard)</a></span></dt><dt><span class="section"><a href="#filter_reverse">Reverse stops within routes (reverse)</a></span></dt><dt><span class="section"><a href="#filter_stack">Save and restore waypoint lists (stack)</a></span></dt><dt><span class="section"><a href="#filter_simplify">Simplify routes (simplify)</a></span></dt><dt><span class="section"><a href="#filter_transform">Transformate waypoints into a route, tracks into routes, ... (transform)</a></span></dt></dl></div><p> GPSBabel supports data filtering.  Data filters are
+</p></div></div><div class="footnotes"><br /><hr width="100" align="left" /><div class="footnote"><p><sup>[<a id="ftn.posnonly" href="#posnonly">1</a>] </sup>This model does not support transfer of waypoints, tracks, or routes, but may be used with the <a href="#tracking" title="Realtime tracking">realtime tracking</a> feature.</p></div><div class="footnote"><p><sup>[<a id="ftn.gpx" href="#gpx">2</a>] </sup>This unit uses GPX format, not Garmin protocol.  Therefore one should communicate with it by reading and writing GPX files instead of using this format.  Members of this class of products do not support realtime positioning protocol.</p></div></div></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Data_Filters"></a>Chapter 4. Data Filters</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#filter_polygon">Include Only Points Inside Polygon (polygon)</a></span></dt><dt><span class="section"><a href="#filter_arc">Include Only Points Within Distance of Arc (arc)</a></span></dt><dt><span class="section"><a href="#filter_radius">Include Only Points Within Radius (radius)</a></span></dt><dt><span class="section"><a href="#filter_interpolate">Interpolate between trackpoints (interpolate)</a></span></dt><dt><span class="section"><a href="#filter_track">Manipulate track lists (track)</a></span></dt><dt><span class="section"><a href="#filter_sort">Rearrange waypoints by resorting (sort)</a></span></dt><dt><span class="section"><a href="#filter_nuketypes">Remove all waypoints, tracks, or routes (nuketypes)</a></span></dt><dt><span class="section"><a href="#filter_duplicate">Remove Duplicates (duplicate)</a></span></dt><dt><span class="section"><a href="#filter_position">Remove Points Within Distance (position)</a></span></dt><dt><span class="section"><a href="#filter_discard">Remove unreliable points with high hdop or vdop (discard)</a></span></dt><dt><span class="section"><a href="#filter_reverse">Reverse stops within routes (reverse)</a></span></dt><dt><span class="section"><a href="#filter_stack">Save and restore waypoint lists (stack)</a></span></dt><dt><span class="section"><a href="#filter_simplify">Simplify routes (simplify)</a></span></dt><dt><span class="section"><a href="#filter_transform">Transform waypoints into a route, tracks into routes, ... (transform)</a></span></dt></dl></div><p> GPSBabel supports data filtering.  Data filters are
       invoked from the command line via the '-x' option.  It should be
       noted that data filters are invoked in the internal pipeline at
       the point that corresponds to their position on the
@@ -3026,30 +3132,30 @@ the <code class="option">file</code> option.
 Note that this filter currently will not work properly
 if your polygon contains one or both poles or if it spans the
 line of 180 degrees east or west longitude.
-</p><div class="example"><a id="example_polygon_filter"></a><p class="title"><b>Example 4.1. Using the polygon filter</b></p><p> 
+</p><div class="example"><a id="example_polygon_filter"></a><p class="title"><b>Example 4.1. Using the polygon filter</b></p><div class="example-contents"><p> 
 Suppose you have a polygon file that defines the border of your county, 
 called mycounty.txt.  This command line will give you only the points 
 in your county:
-</p><pre class="screen">gpsbabel -i geo -f 1.loc -x polygon,file=mycounty.txt -o mapsend -F 2.wpt</pre></div><div class="example"><a id="example_in_or_close_to"></a><p class="title"><b>Example 4.2. Using the polygon and arc filters to find points in or nearly in a 
-polygon</b></p><p>
+</p><p><strong class="userinput"><code>gpsbabel -i geo -f 1.loc -x polygon,file=mycounty.txt -o mapsend -F 2.wpt</code></strong></p></div></div><br class="example-break" /><div class="example"><a id="example_in_or_close_to"></a><p class="title"><b>Example 4.2. Using the polygon and arc filters to find points in or nearly in a 
+polygon</b></p><div class="example-contents"><p>
 Because the polygon and <a href="#filter_arc" title="Include Only Points Within Distance of Arc (arc)">arc</a> filters use
 the same file format, you can use them together to find all points that are
 "in or nearly in" a polygon.  This can be useful if your waypoints or the 
 boundaries of your polygon are not quite perfect, so you want to provide a 
 buffer zone around it in case there are points nearby that should be in the 
 polygon but aren't quite.
-</p><pre class="screen">
+</p><p><strong class="userinput"><code>
 gpsbabel -i gpx -f points.gpx -x stack,push -x polygon,file=mycounty.txt 
 -x stack,swap -x arc,file=mycounty.txt,distance=1k -x stack,pop,append 
 -x duplicate,shortname -o gpx -F nearmycounty.gpx
-</pre><p>
+</code></strong></p><p>
 This command makes a copy of the points, finds the ones that are in your
 your county, swaps that result with the copy of the original set of points,
 finds the ones from that set that are within 1 km of the border of the county, 
 puts the two lists together, and then filters out any points that appear twice
 (This step is necessary because points inside the county but near the county 
 line will be kept by both the polygon and the arc filter.)
-</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_polygon_o_file"></a>file option</h3></div></div></div><p>
+</p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_polygon_o_file"></a>file option</h3></div></div></div><p>
       File containing vertices of polygon.
     </p><p>
 This option is required.
@@ -3092,12 +3198,12 @@ something like this sample:
 An arc file may optionally contain gaps in the arc.  You may specify 
 such a gap by inserting a line containing "#break" either on a line by 
 itself or after the coordinates of the starting point of the new arc segment.
-</p><div class="example"><a id="example_arc_filter"></a><p class="title"><b>Example 4.3. Using the arc filter</b></p><p>
+</p><div class="example"><a id="example_arc_filter"></a><p class="title"><b>Example 4.3. Using the arc filter</b></p><div class="example-contents"><p>
 Assuming the arc above is in a file called 
 <code class="filename">lima_rd.txt</code>, the following command line
 would include only points within one mile of the section of Lima Road 
 covered by the arc.
-</p><pre class="screen">gpsbabel -i geo -f 1.loc -x arc,file=lima_rd.txt,distance=1 -o mapsend -F 2.wpt</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_arc_o_file"></a>file option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i geo -f 1.loc -x arc,file=lima_rd.txt,distance=1 -o mapsend -F 2.wpt</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_arc_o_file"></a>file option</h3></div></div></div><p>
       File containing vertices of arc.
     </p><p>
 This option is required.
@@ -3143,8 +3249,8 @@ specified point will be removed from the dataset.
 </p><p>
 By default, all remaining points are sorted so that points closer to the 
 center appear earlier in the output file.
-</p><div class="example"><a id="radius_to_find_points_close"></a><p class="title"><b>Example 4.4. Using the radius filter to find points close to a given point</b></p><p>This example command line would include only points within 1 1/2 miles
-       of N30.000 W 90.000</p><pre class="screen">gpsbabel -i geo -f 1.loc -x radius,distance=1.5M,lat=30.0,lon=-90.0 -o mapsend -F 2.wpt</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_radius_o_lat"></a>lat option</h3></div></div></div><p>
+</p><div class="example"><a id="radius_to_find_points_close"></a><p class="title"><b>Example 4.4. Using the radius filter to find points close to a given point</b></p><div class="example-contents"><p>This example command line would include only points within 1 1/2 miles
+       of N30.000 W 90.000</p><p><strong class="userinput"><code>gpsbabel -i geo -f 1.loc -x radius,distance=1.5M,lat=30.0,lon=-90.0 -o mapsend -F 2.wpt</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_radius_o_lat"></a>lat option</h3></div></div></div><p>
       Latitude for center point (D.DDDDD).
     </p><p>
 This option is required.
@@ -3222,16 +3328,16 @@ points are missing, the filter fills them in by following a straight
 line (actually a great circle) between the adjacent points.  You
 must specify either the 
 <code class="option">distance</code> or the <code class="option">time</code> option.
-</p><div class="example"><a id="example_interpolate_filter"></a><p class="title"><b>Example 4.5. Using the interpolate filter</b></p><p>
+</p><div class="example"><a id="example_interpolate_filter"></a><p class="title"><b>Example 4.5. Using the interpolate filter</b></p><div class="example-contents"><p>
 This command line reads track.gpx and inserts points wherever two adjacent
 trackpoints are more than 10 seconds apart:
-</p><pre class="screen">gpsbabel -i gpx -f track.gpx -x interpolate,time=10 -o gpx -F newtrack.gpx</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f track.gpx -x interpolate,time=10 -o gpx -F newtrack.gpx</code></strong></p><p>
 This command reads track.gpx and inserts points wherever two adjacent
 trackpoints are more than 15 kilometers apart:
-</p><pre class="screen">gpsbabel -i gpx -f track.gpx -x interpolate,distance=15k -o gpx -F newtrack.gpx</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f track.gpx -x interpolate,distance=15k -o gpx -F newtrack.gpx</code></strong></p><p>
 This command reads track.gpx and inserts points wherever two adjacent
 trackpoints are more than 2 miles apart:
-</p><pre class="screen">gpsbabel -i gpx -f track.gpx -x interpolate,distance=2m -o gpx -F newtrack.gpx</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_interpolate_o_time"></a>time option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f track.gpx -x interpolate,distance=2m -o gpx -F newtrack.gpx</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_interpolate_o_time"></a>time option</h3></div></div></div><p>
       Time interval in seconds.
     </p><p>
 This option specifies the maximum allowable time interval between points in the
@@ -3268,9 +3374,9 @@ This filter performs various operations on track data.
 This option changes the time of all trackpoints. This might be useful if
 your track must be moved by one or more hours because of an incorrect
 time zone.
-</p><div class="example"><a id="ex_track_move"></a><p class="title"><b>Example 4.6. Time-shifting a track with the track filter</b></p><p>
+</p><div class="example"><a id="ex_track_move"></a><p class="title"><b>Example 4.6. Time-shifting a track with the track filter</b></p><div class="example-contents"><p>
 The following command line will shift all tracks to be one hour later.
-</p><pre class="screen">gpsbabel -t -i gpx -f in.gpx -x track,move=+1h -o gpx -F out.gpx</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_pack"></a>pack option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -t -i gpx -f in.gpx -x track,move=+1h -o gpx -F out.gpx</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_pack"></a>pack option</h3></div></div></div><p>
       Pack all tracks into one.
     </p><p> 
 This option causes all tracks to be appended to one another to form a single
@@ -3288,14 +3394,10 @@ If no other option is given to the track filter, this option is assumed.
          track, use the pack option before before using this.  To
          split a single tracks into separate tracks for each day and
          name them, use this:
-      </p><pre class="screen">
-gpsbabel -t -i gpx -f in.gpx -x \
-   track,split,title="ACTIVE LOG \
-    # %Y%m%d" -o gpx -F out.gpx</pre><p> If the input has multiple tracks, pack them together before
-splitting them back apart per day thusly: </p><pre class="screen">                 
-gpsbabel -t   -i gpx -f in.gpx  \
-     -x track,pack,split,title="ACTIVE LOG # %D"       \
-     -o gpx -F out.gpx</pre><p> Additionally you can add an interval to the split
+      </p><p><strong class="userinput"><code> gpsbabel -t -i gpx -f in.gpx -x track,split,title="ACTIVE LOG # %Y%m%d" -o gpx -F out.gpx</code></strong></p><p> If the input has multiple tracks, pack them together before
+splitting them back apart per day thusly: </p><p><strong class="userinput"><code>          gpsbabel -t   -i gpx -f in.gpx  
+     -x track,pack,split,title="ACTIVE LOG # %D"       
+     -o gpx -F out.gpx</code></strong></p><p> Additionally you can add an interval to the split
          option.  With this the track will be split if the time
          between two points is greater than this parameter. The
          interval must be numeric and can be int days, hours, minutes
@@ -3303,12 +3405,12 @@ gpsbabel -t   -i gpx -f in.gpx  \
          or "s".  If no trailing character is present, the units are
          assumed to be in seconds.
 </p><p> For example, to split a track based on an four hour
-         interval, use this:</p><pre class="screen">            
-gpsbabel -t 
-     -i gpx -f in.gpx 
-     -x track,pack,split=4h,title="LOG # %c" 
+         interval, use this:</p><p><strong class="userinput"><code>            
+gpsbabel -t 
+     -i gpx -f in.gpx 
+     -x track,pack,split=4h,title="LOG # %c" 
      -o gpx -F out.gpx
-</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_sdistance"></a>sdistance option</h3></div></div></div><p>
+</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_sdistance"></a>sdistance option</h3></div></div></div><p>
       Split by distance.
     </p><p> The input track will be split into several tracks
          if the distance between successive track points
@@ -3319,12 +3421,12 @@ gpsbabel -t \
        effect as the split option without parameters. If there is more 
        than one track,
          use the pack option before before using this.</p><p> For example, to split the track if the distance between
-         points is greater than 100 meters, use this:</p><pre class="screen">
-gpsbabel -t \
-     -i gpx -f in.gpx \
-     -x track,pack,sdistance=0.1k" \
+         points is greater than 100 meters, use this:</p><p><strong class="userinput"><code>
+gpsbabel -t 
+     -i gpx -f in.gpx 
+     -x track,pack,sdistance=0.1k" 
      -o gpx -F out.gpx
-</pre><p> The sdistance option can be combined with the split option.
+</code></strong></p><p> The sdistance option can be combined with the split option.
         The track then will be split only if both time and distance
         interval exceeds the supplied values. This technique can be used to 
        filter out gaps from
@@ -3333,21 +3435,21 @@ gpsbabel -t \
        a distance over that given.
         This example splits the track
         if the device is without signal for at least 5 minutes
-        and during this time moves more than 300 meters:</p><pre class="screen">
-gpsbabel -t \
-     -i gpx -f in.gpx \
-     -x track,pack,sdistance=0.3k,split=5m \
+        and during this time moves more than 300 meters:</p><p><strong class="userinput"><code>
+gpsbabel -t 
+     -i gpx -f in.gpx 
+     -x track,pack,sdistance=0.3k,split=5m 
      -o gpx -F out.gpx
-</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_merge"></a>merge option</h3></div></div></div><p>
+</code></strong></p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_merge"></a>merge option</h3></div></div></div><p>
       Merge multiple tracks for the same way.
     </p><p> 
 This option puts all track points from all tracks into a single track 
 and sorts them by time stamp.  Points with identical time stamps will be
 dropped.
-</p><div class="example"><a id="ex_track_merge"></a><p class="title"><b>Example 4.7. Merging tracks with the track filter</b></p><p> 
+</p><div class="example"><a id="ex_track_merge"></a><p class="title"><b>Example 4.7. Merging tracks with the track filter</b></p><div class="example-contents"><p> 
 Suppose you want to merge tracks recorded with two different GPS devices 
 at the same time.  To do that, use this command line:
-</p><pre class="screen">gpsbabel -t -i gpx -f john.gpx -i gpx -f doe.gpx -x track,merge,title="COMBINED LOG" -o gpx -F john_doe.gpx</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_name"></a>name option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -t -i gpx -f john.gpx -i gpx -f doe.gpx -x track,merge,title="COMBINED LOG" -o gpx -F john_doe.gpx</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_name"></a>name option</h3></div></div></div><p>
       Use only track(s) where title matches given name.
     </p><p>
 With the name option you can filter out a track by title.
@@ -3368,10 +3470,10 @@ The value of this option must be in the form of YYYYMMDDHHMMSS, but it is
 not necessary to specify the smaller time units if they are not needed.  
 That is, if you only care about points logged between 10 AM and 6 PM on a
 given date, you need not specify the minutes or seconds.
-</p><div class="example"><a id="ex_track_startstop"></a><p class="title"><b>Example 4.8. Extracting a period of time with the track filter</b></p><p>
+</p><div class="example"><a id="ex_track_startstop"></a><p class="title"><b>Example 4.8. Extracting a period of time with the track filter</b></p><div class="example-contents"><p>
 To get only the parts of a track that were mapped on 20 July 2005
 between 10 AM and 6 PM, use this command line:
-</p><pre class="screen">gpsbabel -t -i gpx -f in.gpx -x track,start=2005072010,stop=2005072018 -o gpx -F out.gpx </pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_stop"></a>stop option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -t -i gpx -f in.gpx -x track,start=2005072010,stop=2005072018 -o gpx -F out.gpx </code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_track_o_stop"></a>stop option</h3></div></div></div><p>
       Use only track points before this timestamp.
     </p><p>
 This option is used in conjunction with the <code class="option">start</code> option to 
@@ -3457,12 +3559,12 @@ This option is not valid in combination with any other option.
 There are three main types of data that GPSBabel deals with:
 waypoints, tracks, and routes.   The nuketypes filter allows
 removing all the data of any or all of those three types.
-</p><div class="example"><a id="example_nuketypes_filter"></a><p class="title"><b>Example 4.9. Filtering data types with nuketypes</b></p><p>
+</p><div class="example"><a id="example_nuketypes_filter"></a><p class="title"><b>Example 4.9. Filtering data types with nuketypes</b></p><div class="example-contents"><p>
 If you have a GPX file that contains routes, tracks, and
 waypoints and you want a GPX file that contains only tracks,
 you may use this filter to remove the waypoints and the routes 
 with this command:
-</p><pre class="screen">gpsbabel -i gpx -f bigfile.gpx -x nuketypes,waypoints,routes -o gpx -F tracksonly.gpx</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nuketypes_o_waypoints"></a>waypoints option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f bigfile.gpx -x nuketypes,waypoints,routes -o gpx -F tracksonly.gpx</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_nuketypes_o_waypoints"></a>waypoints option</h3></div></div></div><p>
       Remove all waypoints from data stream.
     </p><p>
 This option causes the nuketypes filter to discard all waypoints that are not 
@@ -3483,12 +3585,12 @@ options that specify how duplicates will be recognized,
 <code class="option">shortname</code> and <code class="option">location</code>.  
 Generally, at least one of these options is required.  
 </p><div class="example"><a id="duplicate_to_suppress_points"></a><p class="title"><b>Example 4.10. Using the duplicate filter to suppress points with the same 
-         name and location</b></p><p>
+         name and location</b></p><div class="example-contents"><p>
   This command line removes points that have duplicate short names
   and duplicate locations.  The result would be a 
   <a href="#fmt_gpx" title="GPX XML (gpx)">gpx</a> file that more than likely 
   contains only unique points and point data.
-  </p><pre class="screen"> gpsbabel -i gpx -f 1.gpx -f 2.gpx -x duplicate,location,shortname -o gpx -F merged_with_no_dupes.gpx</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_duplicate_o_shortname"></a>shortname option</h3></div></div></div><p>
+  </p><p><strong class="userinput"><code> gpsbabel -i gpx -f 1.gpx -f 2.gpx -x duplicate,location,shortname -o gpx -F merged_with_no_dupes.gpx</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_duplicate_o_shortname"></a>shortname option</h3></div></div></div><p>
       Suppress duplicate waypoints based on name.
     </p><p>
 This option is the one most often used with the duplicate filter.  This 
@@ -3513,11 +3615,11 @@ duplicated waypoint, not just the second and subsequent instances.  If
 your input file contains waypoints A, B, B, and C, the output file will
 contain waypoints A, B, and C without the <code class="option">all</code> option, 
 or just A and C with the <code class="option">all</code> option.
-</p><div class="example"><a id="duplicate_to_ignore"></a><p class="title"><b>Example 4.11. Using the duplicate filter to implement an "ignore list."</b></p><p>
+</p><div class="example"><a id="duplicate_to_ignore"></a><p class="title"><b>Example 4.11. Using the duplicate filter to implement an "ignore list."</b></p><div class="example-contents"><p>
 This option may be used to implement an "ignore list."  In the following 
 example, the duplicate filter is used to remove a list of waypoints to be
 ignored from a larger collection of waypoints:
-</p><pre class="screen">gpsbabel -i gpx -f waypoints.gpx -i csv -f to_ignore.csv -x duplicate,shortname,all -o gpx -F filtered.gpx</pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_duplicate_o_correct"></a>correct option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f waypoints.gpx -i csv -f to_ignore.csv -x duplicate,shortname,all -o gpx -F filtered.gpx</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_duplicate_o_correct"></a>correct option</h3></div></div></div><p>
       Use coords from duplicate points.
     </p><p>
 This option is used to change the locations of waypoints without losing any 
@@ -3528,19 +3630,19 @@ longitude in the original waypoint.
 As an example, this option may be used to adjust the locations of "puzzle" 
 geocaches in a Groundspeak pocket query:
 </p><div class="example"><a id="Correcting_Cache_Locations"></a><p class="title"><b>Example 4.12. Using the duplicate filter to correct the locations of "puzzle"
-geocaches</b></p><pre class="screen">gpsbabel -i gpx -f 43622.gpx -i csv -f corrections.csv -x duplicate,shortname,correct -o gpx -F 43622-corrected.gpx</pre><p>
+geocaches</b></p><div class="example-contents"><p><strong class="userinput"><code>gpsbabel -i gpx -f 43622.gpx -i csv -f corrections.csv -x duplicate,shortname,correct -o gpx -F 43622-corrected.gpx</code></strong></p><p>
 After this command is run, the waypoints in the output file will have all 
 of the descriptive information from <code class="filename">43622.gpx</code>, but 
 waypoints that were also found in <code class="filename">corrections.csv</code> 
 will have their coordinates replaced with the coordinates from that file.
-</p></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="filter_position"></a>Remove Points Within Distance (position)</h2></div></div></div><p> 
+</p></div></div><br class="example-break" /></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="filter_position"></a>Remove Points Within Distance (position)</h2></div></div></div><p> 
 This filter removes points based on their proximity to each other.  A 
 point is removed if it is within the specified distance of a point that 
 has come before.
-</p><div class="example"><a id="posn_to_suppress_close_points"></a><p class="title"><b>Example 4.13. Using the position filter to suppress close points</b></p><p>
+</p><div class="example"><a id="posn_to_suppress_close_points"></a><p class="title"><b>Example 4.13. Using the position filter to suppress close points</b></p><div class="example-contents"><p>
 The following command removes multiple points that are within 
 one foot of each other, leaving just one.
-</p><pre class="screen">gpsbabel -i geo -f 1.loc -f 2.loc -x position,distance=1f -o mapsend -F 3.wpt</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_position_o_distance"></a>distance option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -i geo -f 1.loc -f 2.loc -x position,distance=1f -o mapsend -F 3.wpt</code></strong></p></div></div><br class="example-break" /><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_position_o_distance"></a>distance option</h3></div></div></div><p>
       Maximum positional distance.
     </p><p>
 This option specifies the minimum allowable distance between two points.  If 
@@ -3560,7 +3662,7 @@ This filter is used to "fix" unreliable GPS data by discarding points
 with HDOP and/or VDOP above a specified limit.  HDOP and VDOP are 
 measures of the best possible horizontal or vertical precision 
 for a given configuration of GPS satellites.
-</p><div class="example"><a id="example_discard_filter"></a><p class="title"><b>Example 4.14. Using the discard filter</b></p><pre class="screen"> gpsbabel -i gpx -f in.gpx -x discard,hdop=10,vdop=20,hdopandvdop -o gpx -F out.gpx</pre></div><p> Contributed by Tobias Minich.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_discard_o_hdop"></a>hdop option</h3></div></div></div><p>
+</p><div class="example"><a id="example_discard_filter"></a><p class="title"><b>Example 4.14. Using the discard filter</b></p><div class="example-contents"><p><strong class="userinput"><code> gpsbabel -i gpx -f in.gpx -x discard,hdop=10,vdop=20,hdopandvdop -o gpx -F out.gpx</code></strong></p></div></div><br class="example-break" /><p> Contributed by Tobias Minich.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_discard_o_hdop"></a>hdop option</h3></div></div></div><p>
       Suppress waypoints with higher hdop.
     </p><p>
 This option specifies the maximum allowable Horizontal Dilution of 
@@ -3614,29 +3716,29 @@ can fit in your computer's memory.
  points that are inside both counties are duplicated (but the
  duplicates can be removed with the DUPLICATE filter; see
  above.)
-</p><pre class="screen">           
-gpsbabel -i gpx -f in.gpx \
-         -x stack,push,copy \
-         -x polygon,file=county_a.txt \    
-         -x stack,swap \
-         -x polygon,file=county_b.txt \
-         -x stack,pop,append \
+</p><p><strong class="userinput"><code>           
+gpsbabel -i gpx -f in.gpx 
+         -x stack,push,copy 
+         -x polygon,file=county_a.txt 
+         -x stack,swap 
+         -x polygon,file=county_b.txt 
+         -x stack,pop,append 
          -o gpx -F out.gpx
-</pre><p> This example reads a large list of waypoints and
+</code></strong></p><p> This example reads a large list of waypoints and
          extracts the points within 20 miles of each of two cities,
          writing the waypoint descriptions into two different PalmDoc
          files and exporting all of the points to the GPS receiver:
-</p><pre class="screen">           
-gpsbabel -i gpx -f indiana.gpx \
-         -x stack,push,copy \
-         -x radius,lat=41.0765,lon=-85.1365,distance=20m \
-         -o palmdoc,dbname=Fort\ Wayne -F fortwayne.pdb \
-         -x stack,swap \
-         -x radius,lat=39.7733,lon=-86.1433,distance=20m \
-         -o palmdoc,dbname=Indianapolis -F indianapolis.pdb \
-         -x stack,pop,append \
+</p><p><strong class="userinput"><code>           
+gpsbabel -i gpx -f indiana.gpx 
+         -x stack,push,copy 
+         -x radius,lat=41.0765,lon=-85.1365,distance=20m 
+         -o palmdoc,dbname=Fort\ Wayne -F fortwayne.pdb 
+         -x stack,swap 
+         -x radius,lat=39.7733,lon=-86.1433,distance=20m 
+         -o palmdoc,dbname=Indianapolis -F indianapolis.pdb 
+         -x stack,pop,append 
          -o magellan -F fwaind.wpt
-</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_stack_o_push"></a>push option</h3></div></div></div><p>
+</code></strong></p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_stack_o_push"></a>push option</h3></div></div></div><p>
       Push waypoint list onto stack.
     </p><p>
 This is one of three "primary" options to the stack filter.
@@ -3711,7 +3813,7 @@ in the original route and the length of the original route.
 For example, suppose you have a route from Street Atlas 2003 that you 
 wish to use with a Magellan GPS receiver that only supports up to 50 points 
 in a route:
-</p><pre class="screen">gpsbabel -r -i saroute -f RoadTrip.anr -x simplify,count=50 -o magellan  -F grocery.rte</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_simplify_o_count"></a>count option</h3></div></div></div><p>
+</p><p><strong class="userinput"><code>gpsbabel -r -i saroute -f RoadTrip.anr -x simplify,count=50 -o magellan  -F grocery.rte</code></strong></p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_simplify_o_count"></a>count option</h3></div></div></div><p>
       Maximum number of points in route.
     </p><p>
 This option specifies the maximum number of points which may appear in the
@@ -3747,7 +3849,7 @@ this is the default.
     </p><p>
 This option instructs GPSBabel to simplify by removing points that cause the
 smallest change in the overall length of the route first.  
-</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="filter_transform"></a>Transformate waypoints into a route, tracks into routes, ... (transform)</h2></div></div></div><p>
+</p></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="filter_transform"></a>Transform waypoints into a route, tracks into routes, ... (transform)</h2></div></div></div><p>
   This filter can be used to convert GPS data between different data types.
 </p><p>
   Some GPS data formats support only some subset of waypoints, tracks,
@@ -3756,38 +3858,59 @@ smallest change in the overall length of the route first.
   as those from a CSV file) into a track or vice versa.
 </p><p>
   The following example show you how to create a route from a waypoint table.
-  </p><pre class="screen">gpsbabel -i csv waypts.txt -x transform,rte=wpt -o gpx -F route.gpx</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i csv waypts.txt -x transform,rte=wpt -o gpx -F route.gpx</code></strong></p><p>
   Only the first letter of option value decides which transformation will be done.
   Depending on the used option it can be only 'W' for waypoints, 'R' for routes or
   'T' for tracks.
 </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_wpt"></a>wpt option</h3></div></div></div><p>
       Transform track(s) or route(s) into waypoint(s) [R/T].
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_rte"></a>rte option</h3></div></div></div><p>
+    </p><p>
+This option selects the destination type of this filter to be waypoints.  
+Choose this when you want to convert tracks or routes into waypoints.
+</p><div class="example"><a id="transform_to_wpt"></a><p class="title"><b>Example 4.15. Converting a track to a sequence of waypoints</b></p><div class="example-contents"><p>
+Say you you have a KML file that contains a track but you want to convert it to a CSV file that can contain only waypoints, perhaps to import into a spreadsheet.  Use the following command:
+</p><p><strong class="userinput"><code>gpsbabel -i kml -f blah.kml -x transform,wpt=trk -o csv -F blah.txt</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_rte"></a>rte option</h3></div></div></div><p>
       Transform waypoint(s) or track(s) into route(s) [W/T].
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_trk"></a>trk option</h3></div></div></div><p>
+    </p><p>
+This option selects the destination type of this filter to be routes.  Choose this when you want to convert tracks into waypoints routes.  A single route will be created in the sequence they appear in the input.
+</p><div class="example"><a id="transform_to_rte"></a><p class="title"><b>Example 4.16. Converting a pile of waypoints to a GPX route</b></p><div class="example-contents"><p>
+Say you you have a data file that came from CSV file that you want to convert  
+to a GPX route that can be loaded into Mapsource.  Use the following command:
+</p><p><strong class="userinput"><code>gpsbabel -i csv -f blah.txt -x transform,rte=wpt -o gdb -F blah.gdb</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_trk"></a>trk option</h3></div></div></div><p>
       Transform waypoint(s) or route(s) into tracks(s) [W/R].
-    </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_del"></a>del option</h3></div></div></div><p>
+    </p><p>
+This option selects the destination type of this filter to be tracks.  
+Choose this when you want to create tracks from a list of waypoints or routes. 
+A single track will be created in the sequence they appear in the input.
+</p><div class="example"><a id="transform_to_trk"></a><p class="title"><b>Example 4.17. Converting a pile of waypoints to a GPX track</b></p><div class="example-contents"><p>
+Say you you have a data file that came from CSV file that you want to convert  
+to a GPX track that can be loaded into Mapsource.  Use the following command:
+</p><p><strong class="userinput"><code>gpsbabel -i csv -f blah.txt -x transform,trk=wpt -o gdb -F blah.gdb</code></strong></p></div></div><br class="example-break" /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="fmt_transform_o_del"></a>del option</h3></div></div></div><p>
       Delete source data after transformation.
-    </p></div></div></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Datums"></a>Appendix A. Supported Datums</h2></div></div></div><p>
+    </p><p>
+This option, when used in connction with the wpt, rte, or trk options, tells
+GPSBabel to delete the source data after conversion.  This is most useful if 
+you are trying to avoid duplicated data in the output.
+</p><div class="example"><a id="transform_del"></a><p class="title"><b>Example 4.18. Convert a GPX track to GPX waypoints, tossing the original track</b></p><div class="example-contents"><p><strong class="userinput"><code>gpsbabel -i gpx -f blah.gpx -x transform,wpt=trk,del -o gpx -F converted.gpx</code></strong></p></div></div><br class="example-break" /></div></div></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Datums"></a>Appendix A. Supported Datums</h2></div></div></div><p>
 Some formats in GPSBabel support multiple datums.  For example, the 
 <code class="option">datum</code> option to the 
 <a href="#fmt_garmin_txt" title="Garmin MapSource - txt (tab delimited) (garmin_txt)">garmin_txt</a> format allows you to specify
 a datum for the output file.  
 </p><p>
 The following is a list of the datums supported by GPSBabel.
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Adindan</td><td>Carribean NAD27</td><td>Hjorsey 1955</td><td>Nahrwan</td><td>Santo (DOS)</td></tr><tr><td>AFG</td><td>Carthage</td><td>Hong Kong 1963</td><td>Naparima BWI</td><td>Sapper Hill 43</td></tr><tr><td>Ain-El-Abd</td><td>Cent America NAD27</td><td>Hu-Tzu-Shan</td><td>North America 83</td><td>Schwarzeck</td></tr><tr><td>Alaska-NAD27</td><td>Chatham 1971</td><td>Indian</td><td>N. America 1927 mean</td><td>Sicily</td></tr><tr><td>Alaska-Canada</td><td>Chua Astro</td><td>Iran</td><td>Observatorio 1966</td><td>Sierra Leone 1960</td></tr><tr><td>Anna-1-Astro</td><td>Corrego Alegre</td><td>Ireland 1965</td><td>Old Egyptian</td><td>S. Am. 1969 mean</td></tr><tr><td>ARC 1950 Mean</td><td>Cuba NAD27</td><td>ISTS 073 Astro 69</td><td>Old Hawaiian_mean</td><td>South Asia</td></tr><tr><td>ARC 1960 Mean</td><td>Cyprus</td><td>Johnston Island 61</td><td>Old Hawaiian Kauai</td><td>Southeast Base</td></tr><tr><td>Asc Island 58</td><td>Djakarta(Batavia)</td><td>Kandawala</td><td>Old Hawaiian Maui</td><td>Southwest Base</td></tr><tr><td>Astro B4</td><td>DOS 1968</td><td>Kerguelen Island</td><td>Old Hawaiian Oahu</td><td>Tananarive Obs 25</td></tr><tr><td>Astro Beacon E</td><td>Easter lsland 1967</td><td>Kertau 48</td><td>Oman</td><td>Thai/Viet (Indian)</td></tr><tr><td>Astro pos 71/4</td><td>Egypt</td><td>L.C. 5 Astro</td><td>OSGB36</td><td>Timbalai 1948</td></tr><tr><td>Astro stn 52</td><td>European 1950</td><td>La Reunion</td><td>Pico De Las Nieves</td><td>Tokyo mean</td></tr><tr><td>Australia Geo 1984</td><td>European 1950 mean</td><td>Liberia 1964</td><td>Pitcairn Astro 67</td><td>Tristan Astro 1968</td></tr><tr><td>Bahamas NAD27</td><td>European 1979 mean</td><td>Luzon</td><td>S. Am. 1956 mean(P)</td><td>United Arab Emirates</td></tr><tr><td>Bellevue IGN</td><td>Finnish Nautical</td><td>Mahe 1971</td><td>S. Chilean 1963 (P)</td><td>Viti Levu 1916</td></tr><tr><td>Bermuda 1957</td><td>Gandajika Base</td><td>Marco Astro</td><td>Puerto Rico</td><td>Wake Eniwetok 60</td></tr><tr><td>Bukit Rimpah</td><td>Geodetic Datum 49</td><td>Masirah Is. Nahrwan</td><td>Pulkovo 1942</td><td>WGS 72</td></tr><tr><td>Camp_Area_Astro</td><td>Ghana</td><td>Massawa</td><td>Qornoq</td><td>WGS 84</td></tr><tr><td>Campo_Inchauspe</td><td>Greenland NAD27</td><td>Merchich</td><td>Quatar National</td><td>Yacare</td></tr><tr><td>Canada_Mean(NAD27)</td><td>Guam 1963</td><td>Mexico NAD27</td><td>Rome 1940</td><td>Zanderij</td></tr><tr><td>Canal_Zone_(NAD27)</td><td>Gunung Segara</td><td>Midway Astro 61</td><td>S-42(Pulkovo1942)</td><td>Sweden</td></tr><tr><td>Canton_Island_1966</td><td>Gunung Serindung 1962</td><td>Mindanao</td><td>S.E.Asia_(Indian)</td><td> </td></tr><tr><td>Cape</td><td>GUX1 Astro</td><td>Minna</td><td>SAD-69/Brazil</td><td> </td></tr><tr><td>Cape_Canaveral_mean</td><td>Herat North</td><td>Montjong Lowe</td><td>Santa Braz</td><td> </td></tr></table></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="GarminIcons"></a>Appendix B. Garmin Icons</h2></div></div></div><p>
+</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Adindan</td><td>Cuba NAD27</td><td>La Reunion</td><td>Qornoq</td></tr><tr><td>AFG</td><td>Cyprus</td><td>Liberia 1964</td><td>Quatar National</td></tr><tr><td>Ain-El-Abd</td><td>Djakarta(Batavia)</td><td>Luzon</td><td>Rome 1940</td></tr><tr><td>Alaska-NAD27</td><td>DOS 1968</td><td>Mahe 1971</td><td>S-42(Pulkovo1942)</td></tr><tr><td>Alaska-Canada</td><td>Easter lsland 1967</td><td>Marco Astro</td><td>S.E.Asia_(Indian)</td></tr><tr><td>Anna-1-Astro</td><td>Egypt</td><td>Masirah Is. Nahrwan</td><td>SAD-69/Brazil</td></tr><tr><td>ARC 1950 Mean</td><td>European 1950</td><td>Massawa</td><td>Santa Braz</td></tr><tr><td>ARC 1960 Mean</td><td>European 1950 mean</td><td>Merchich</td><td>Santo (DOS)</td></tr><tr><td>Asc Island 58</td><td>European 1979 mean</td><td>Mexico NAD27</td><td>Sapper Hill 43</td></tr><tr><td>Astro B4</td><td>Finnish Nautical</td><td>Midway Astro 61</td><td>Schwarzeck</td></tr><tr><td>Astro Beacon E</td><td>Gandajika Base</td><td>Mindanao</td><td>Sicily</td></tr><tr><td>Astro pos 71/4</td><td>Geodetic Datum 49</td><td>Minna</td><td>Sierra Leone 1960</td></tr><tr><td>Astro stn 52</td><td>Ghana</td><td>Montjong Lowe</td><td>S. Am. 1969 mean</td></tr><tr><td>Australia Geo 1984</td><td>Greenland NAD27</td><td>Nahrwan</td><td>South Asia</td></tr><tr><td>Bahamas NAD27</td><td>Guam 1963</td><td>Naparima BWI</td><td>Southeast Base</td></tr><tr><td>Bellevue IGN</td><td>Gunung Segara</td><td>North America 83</td><td>Southwest Base</td></tr><tr><td>Bermuda 1957</td><td>Gunung Serindung 1962</td><td>N. America 1927 mean</td><td>Tananarive Obs 25</td></tr><tr><td>Bukit Rimpah</td><td>GUX1 Astro</td><td>Observatorio 1966</td><td>Thai/Viet (Indian)</td></tr><tr><td>Camp_Area_Astro</td><td>Herat North</td><td>Old Egyptian</td><td>Timbalai 1948</td></tr><tr><td>Campo_Inchauspe</td><td>Hjorsey 1955</td><td>Old Hawaiian_mean</td><td>Tokyo mean</td></tr><tr><td>Canada_Mean(NAD27)</td><td>Hong Kong 1963</td><td>Old Hawaiian Kauai</td><td>Tristan Astro 1968</td></tr><tr><td>Canal_Zone_(NAD27)</td><td>Hu-Tzu-Shan</td><td>Old Hawaiian Maui</td><td>United Arab Emirates</td></tr><tr><td>Canton_Island_1966</td><td>Indian</td><td>Old Hawaiian Oahu</td><td>Viti Levu 1916</td></tr><tr><td>Cape</td><td>Iran</td><td>Oman</td><td>Wake Eniwetok 60</td></tr><tr><td>Cape_Canaveral_mean</td><td>Ireland 1965</td><td>OSGB36</td><td>WGS 72</td></tr><tr><td>Carribean NAD27</td><td>ISTS 073 Astro 69</td><td>Pico De Las Nieves</td><td>WGS 84</td></tr><tr><td>Carthage</td><td>Johnston Island 61</td><td>Pitcairn Astro 67</td><td>Yacare</td></tr><tr><td>Cent America NAD27</td><td>Kandawala</td><td>S. Am. 1956 mean(P)</td><td>Zanderij</td></tr><tr><td>Chatham 1971</td><td>Kerguelen Island</td><td>S. Chilean 1963 (P)</td><td>Sweden</td></tr><tr><td>Chua Astro</td><td>Kertau 48</td><td>Puerto Rico</td><td> </td></tr><tr><td>Corrego Alegre</td><td>L.C. 5 Astro</td><td>Pulkovo 1942</td><td> </td></tr></table></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="GarminIcons"></a>Appendix B. Garmin Icons</h2></div></div></div><p>
 Following is a list of the valid values for the 
 <a href="#fmt_garmin" title="Garmin serial/USB protocol (garmin)">garmin</a> <code class="option">deficon</code> option.
 These values are also used internally by the 
 <a href="#fmt_gdb" title="Garmin MapSource - gdb (gdb)">GDB</a>,
-<a href="#fmt_bcr" title="Motorrad Routenplaner (Map">BCR</a>,
+<a href="#fmt_bcr" title="Motorrad Routenplaner (Map&amp;Guide) .bcr files (bcr)">BCR</a>,
 <a href="#fmt_mapsource" title="Garmin MapSource - mps (mapsource)">Mapsource</a>,
 <a href="#fmt_geoniche" title="GeoNiche .pdb (geoniche)">Geoniche</a>,
 <a href="#fmt_gpilots" title="GpilotS (gpilots)">GPilotS</a>,
 <a href="#fmt_pcx" title="Garmin PCX5 (pcx)">PCX</a>, and
 <a href="#fmt_psitrex" title="KuDaTa PsiTrex text (psitrex)">PSITrex</a> 
 formats.
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Airport</td><td>Contact, Big Ears</td><td>Ghost Town</td><td>Navaid, Amber</td><td>Reef</td></tr><tr><td>Amusement Park</td><td>Contact, Biker</td><td>Glider Area</td><td>Navaid, Black</td><td>Residence</td></tr><tr><td>Anchor Prohibited</td><td>Contact, Bug</td><td>Golf Course</td><td>Navaid, Blue</td><td>Restaurant</td></tr><tr><td>Asian Food</td><td>Contact, Cat</td><td>Green circle</td><td>Navaid, Green</td><td>Restricted Area</td></tr><tr><td>Ball Park</td><td>Contact, Dog</td><td>Green Diamond</td><td>Navaid, Green/Red</td><td>Restroom</td></tr><tr><td>Bank</td><td>Contact, Dreadlocks</td><td>Green Letter A</td><td>Navaid, Green/White</td><td>RV Park</td></tr><tr><td>Bar</td><td>Contact, Female1</td><td>Green Letter B</td><td>Navaid, Orange</td><td>Scales</td></tr><tr><td>Beach</td><td>Contact, Female2</td><td>Green Letter C</td><td>Navaid, Red</td><td>Scenic Area</td></tr><tr><td>Beacon</td><td>Contact, Female3</td><td>Green Letter D</td><td>Navaid, Red/Green</td><td>School</td></tr><tr><td>Bell</td><td>Contact, Goatee</td><td>Green Number 0</td><td>Navaid, Red/White</td><td>Seafood</td></tr><tr><td>Bike Trail</td><td>Contact, Kung-Fu</td><td>Green Number 1</td><td>Navaid, Violet</td><td>Seaplane Base</td></tr><tr><td>Blue Circle</td><td>Contact, Pig</td><td>Green Number 2</td><td>Navaid, White</td><td>Shipwreck</td></tr><tr><td>Blue Diamond</td><td>Contact, Pirate</td><td>Green Number 3</td><td>Navaid, White/Green</td><td>Shopping Center</td></tr><tr><td>Blue Letter A</td><td>Contact, Ranger</td><td>Green Number 4</td><td>Navaid, White/Red</td><td>Short Tower</td></tr><tr><td>Blue Letter B</td><td>Contact, Smiley</td><td>Green Number 5</td><td>Non-directional beacon</td><td>Shower</td></tr><tr><td>Blue Letter C</td><td>Contact, Spike</td><td>Green Number 6</td><td>Null</td><td>Ski Resort</td></tr><tr><td>Blue Letter D</td><td>Contact, Sumo</td><td>Green Number 7</td><td>Oil Field</td><td>Skiing Area</td></tr><tr><td>Blue Number 0</td><td>Controlled Area</td><td>Green Number 8</td><td>Open 24 Hours</td><td>Skull and Crossbones</td></tr><tr><td>Blue Number 1</td><td>Convenience Store</td><td>Green Number 9</td><td>Parachute Area</td><td>Small City</td></tr><tr><td>Blue Number 2</td><td>Crossing</td><td>Green Oval</td><td>Park</td><td>Soft Field</td></tr><tr><td>Blue Number 3</td><td>Dam</td><td>Green Rectangle</td><td>Parking Area</td><td>Stadium</td></tr><tr><td>Blue Number 4</td><td>Danger Area</td><td>Green Square</td><td>Pharmacy</td><td>State Hwy</td></tr><tr><td>Blue Number 5</td><td>Deli</td><td>Green Triangle</td><td>Picnic Area</td><td>Steak</td></tr><tr><td>Blue Number 6</td><td>Department Store</td><td>Heliport</td><td>Pin, Blue</td><td>Street Intersection</td></tr><tr><td>Blue Number 7</td><td>Diamond, Blue</td><td>Horn</td><td>Pin, Green</td><td>Summit</td></tr><tr><td>Blue Number 8</td><td>Diamond, Green</td><td>Hotel</td><td>Pin, Red</td><td>Swimming Area</td></tr><tr><td>Blue Number 9</td><td>Diamond, Red</td><td>House</td><td>Pizza</td><td>TACAN</td></tr><tr><td>Blue Oval</td><td>Diver Down Flag 1</td><td>Hunting Area</td><td>Police Station</td><td>Tall Tower</td></tr><tr><td>Blue Rectangle</td><td>Diver Down Flag 2</td><td>Ice Skating</td><td>Post Office</td><td>Telephone</td></tr><tr><td>Blue Square</td><td>Dock</td><td>Information</td><td>Post Office</td><td>Tide/Current PRediction Station</td></tr><tr><td>Blue Triangle</td><td>Drinking Water</td><td>Intersection</td><td>Private Field</td><td>Toll Booth</td></tr><tr><td>Boat Ramp</td><td>Dropoff</td><td>Intl freeway hwy</td><td>Radio Beacon</td><td>TracBack Point</td></tr><tr><td>Border Crossing (Port Of Entry)</td><td>Elevation point</td><td>Intl national hwy</td><td>Ramp intersection</td><td>Trail Head</td></tr><tr><td>Bottom Conditions</td><td>Event Cache</td><td>Italian food</td><td>Red circle</td><td>Truck Stop</td></tr><tr><td>Bowling</td><td>Exit</td><td>Large exit without services</td><td>Red Diamond</td><td>Tunnel</td></tr><tr><td>Bridge</td><td>Exit without services</td><td>Large Ramp intersection</td><td>Red Letter A</td><td>U Marina</td></tr><tr><td>Building</td><td>Fast Food</td><td>Levee</td><td>Red Letter B</td><td>U stump</td></tr><tr><td>Campground</td><td>First approach fix</td><td>Light</td><td>Red Letter C</td><td>Ultralight Area</td></tr><tr><td>Car</td><td>Fishing Area</td><td>Live Theater</td><td>Red Letter D</td><td>Unknown Cache</td></tr><tr><td>Car Rental</td><td>Fishing Hot Spot Facility</td><td>Localizer Outer Marker</td><td>Red Number 0</td><td>US hwy</td></tr><tr><td>Car Repair</td><td>Fitness Center</td><td>Locationless (Reverse) Cache</td><td>Red Number 1</td><td>VHF Omni-range</td></tr><tr><td>Cemetery</td><td>Flag</td><td>Lodging</td><td>Red Number 2</td><td>Virtual cache</td></tr><tr><td>Church</td><td>Flag, Blue</td><td>Man Overboard</td><td>Red Number 3</td><td>VOR-DME</td></tr><tr><td>Circle with X</td><td>Flag, Green</td><td>Marina</td><td>Red Number 4</td><td>VOR/TACAN</td></tr><tr><td>City (Capitol)</td><td>Flag, Red</td><td>Medical Facility</td><td>Red Number 5</td><td>Water Hydrant</td></tr><tr><td>City (Large)</td><td>Forest</td><td>Micro-Cache</td><td>Red Number 6</td><td>Waypoint</td></tr><tr><td>City (Medium)</td><td>Gambling/casino</td><td>Mile Marker</td><td>Red Number 7</td><td>Webcam Cache</td></tr><tr><td>City (Small)</td><td>Gas Station</td><td>Military</td><td>Red Number 8</td><td>Weed Bed</td></tr><tr><td>Civil</td><td>Geocache</td><td>Mine</td><td>Red Number 9</td><td>White Buoy</td></tr><tr><td>Coast Guard</td><td>Geocache Found</td><td>Missed approach point</td><td>Red Oval</td><td>White Dot</td></tr><tr><td>Contact, Afro</td><td>Geographic place name, land</td><td>Movie Theater</td><td>Red Rectangle</td><td>Wrecker</td></tr><tr><td>Contact, Alien</td><td>Geographic place name, Man-made</td><td>Multi-Cache</td><td>Red Square</td><td>Zoo</td></tr><tr><td>Contact, Ball Cap</td><td>Geographic place name, water</td><td>Museum</td><td>Red Triangle</td><td> </td></tr></table></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Styles"></a>Appendix C. GPSBabel XCSV Style Files</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#styles_intro">Introduction</a></span></dt><dt><span class="section"><a href="#style_intro2">Style file overview</a></span></dt><dt><span class="section"><a href="#styles_internal_const">Internal Constants</a></span></dt><dt><span class="section"><a href="#style_global">Global Properties of the File</a></span></dt><dt><span class="section"><a href="#style_behavior">GPSBabel Behavior Directives</a></span></dt><dt><span class="section"><a href="#style_layout">Defining the Layout of the File</a></span></dt><dt><span class="section"><a href="#style_define">Defining Fields Within the File</a></span></dt><dt><span class="section"><a href="#style_examples">Examples</a></span></dt><dt><span class="section"><a href="#style_notes">Miscellaneous Notes</a></span></dt></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="styles_intro"></a>Introduction</h2></div></div></div><p>
+</p><table class="simplelist" border="0" summary="Simple list"><tr><td>ATV</td><td>Contact, Glasses</td><td>Hunting Area</td><td>Number 0, Green</td><td>Scales</td></tr><tr><td>Airport</td><td>Contact, Goatee</td><td>Ice Skating</td><td>Number 0, Red</td><td>Scenic Area</td></tr><tr><td>Amusement Park</td><td>Contact, Kung-Fu</td><td>Information</td><td>Number 1, Blue</td><td>School</td></tr><tr><td>Anchor</td><td>Contact, Panda</td><td>Intersection</td><td>Number 1, Green</td><td>Seafood</td></tr><tr><td>Anchor Prohibited</td><td>Contact, Pig</td><td>Intl freeway hwy</td><td>Number 1, Red</td><td>Seaplane Base</td></tr><tr><td>Animal Tracks</td><td>Contact, Pirate</td><td>Intl national hwy</td><td>Number 2, Blue</td><td>Shipwreck</td></tr><tr><td>Asian Food</td><td>Contact, Ranger</td><td>Italian food</td><td>Number 2, Green</td><td>Shopping Center</td></tr><tr><td>Bait and Tackle</td><td>Contact, Smiley</td><td>Large Ramp intersection</td><td>Number 2, Red</td><td>Short Tower</td></tr><tr><td>Ball Park</td><td>Contact, Spike</td><td>Large exit without services</td><td>Number 3, Blue</td><td>Shower</td></tr><tr><td>Bank</td><td>Contact, Sumo</td><td>Letter A, Blue</td><td>Number 3, Green</td><td>Ski Resort</td></tr><tr><td>Bar</td><td>Controlled Area</td><td>Letter A, Green</td><td>Number 3, Red</td><td>Skiing Area</td></tr><tr><td>Beach</td><td>Convenience Store</td><td>Letter A, Red</td><td>Number 4, Blue</td><td>Skull and Crossbones</td></tr><tr><td>Beacon</td><td>Cover</td><td>Letter B, Blue</td><td>Number 4, Green</td><td>Small City</td></tr><tr><td>Bell</td><td>Covey</td><td>Letter B, Green</td><td>Number 4, Red</td><td>Small Game</td></tr><tr><td>Big Game</td><td>Crossing</td><td>Letter B, Red</td><td>Number 5, Blue</td><td>Soft Field</td></tr><tr><td>Bike Trail</td><td>Dam</td><td>Letter C, Blue</td><td>Number 5, Green</td><td>Square, Blue</td></tr><tr><td>Blind</td><td>Danger Area</td><td>Letter C, Green</td><td>Number 5, Red</td><td>Square, Green</td></tr><tr><td>Block, Blue</td><td>Deli</td><td>Letter C, Red</td><td>Number 6, Blue</td><td>Square, Red</td></tr><tr><td>Block, Green</td><td>Department Store</td><td>Letter D, Blue</td><td>Number 6, Green</td><td>Stadium</td></tr><tr><td>Block, Red</td><td>Diamond, Blue</td><td>Letter D, Green</td><td>Number 6, Red</td><td>State Hwy</td></tr><tr><td>Blood Trail</td><td>Diamond, Green</td><td>Letter D, Red</td><td>Number 7, Blue</td><td>Steak</td></tr><tr><td>Boat Ramp</td><td>Diamond, Red</td><td>Letterbox Cache</td><td>Number 7, Green</td><td>Street Intersection</td></tr><tr><td>Border Crossing (Port Of Entry)</td><td>Diver Down Flag 1</td><td>Levee</td><td>Number 7, Red</td><td>Stump</td></tr><tr><td>Bottom Conditions</td><td>Diver Down Flag 2</td><td>Library</td><td>Number 8, Blue</td><td>Summit</td></tr><tr><td>Bowling</td><td>Dock</td><td>Light</td><td>Number 8, Green</td><td>Swimming Area</td></tr><tr><td>Bridge</td><td>Dot, White</td><td>Live Theater</td><td>Number 8, Red</td><td>TACAN</td></tr><tr><td>Building</td><td>Drinking Water</td><td>Localizer Outer Marker</td><td>Number 9, Blue</td><td>Tall Tower</td></tr><tr><td>Buoy, White</td><td>Dropoff</td><td>Locationless (Reverse) Cache</td><td>Number 9, Green</td><td>Telephone</td></tr><tr><td>Campground</td><td>Elevation point</td><td>Lodge</td><td>Number 9, Red</td><td>Tide/Current PRediction Station</td></tr><tr><td>Car</td><td>Event Cache</td><td>Lodging</td><td>Oil Field</td><td>Toll Booth</td></tr><tr><td>Car Rental</td><td>Exit</td><td>Man Overboard</td><td>Open 24 Hours</td><td>TracBack Point</td></tr><tr><td>Car Repair</td><td>Exit without services</td><td>Marina</td><td>Oval, Blue</td><td>Trail Head</td></tr><tr><td>Cemetery</td><td>Fast Food</td><td>Medical Facility</td><td>Oval, Green</td><td>Tree Stand</td></tr><tr><td>Church</td><td>First approach fix</td><td>Micro-Cache</td><td>Oval, Red</td><td>Treed Quarry</td></tr><tr><td>Circle with X</td><td>Fishing Area</td><td>Mile Marker</td><td>Parachute Area</td><td>Triangle, Blue</td></tr><tr><td>Circle, Blue</td><td>Fishing Hot Spot Facility</td><td>Military</td><td>Park</td><td>Triangle, Green</td></tr><tr><td>Circle, Green</td><td>Fitness Center</td><td>Mine</td><td>Parking Area</td><td>Triangle, Red</td></tr><tr><td>Circle, Red</td><td>Flag</td><td>Missed approach point</td><td>Pharmacy</td><td>Truck</td></tr><tr><td>City (Capitol)</td><td>Flag, Blue</td><td>Movie Theater</td><td>Picnic Area</td><td>Truck Stop</td></tr><tr><td>City (Large)</td><td>Flag, Green</td><td>Multi-Cache</td><td>Pin, Blue</td><td>Tunnel</td></tr><tr><td>City (Medium)</td><td>Flag, Red</td><td>Multi-Cache</td><td>Pin, Green</td><td>U Marina</td></tr><tr><td>City (Small)</td><td>Food Source</td><td>Museum</td><td>Pin, Red</td><td>U stump</td></tr><tr><td>City Hall</td><td>Forest</td><td>Navaid, Amber</td><td>Pizza</td><td>US hwy</td></tr><tr><td>Civil</td><td>Furbearer</td><td>Navaid, Black</td><td>Police Station</td><td>Ultralight Area</td></tr><tr><td>Coast Guard</td><td>Gambling/casino</td><td>Navaid, Blue</td><td>Post Office</td><td>Unknown Cache</td></tr><tr><td>Contact, Afro</td><td>Gas Station</td><td>Navaid, Green</td><td>Post Office</td><td>Upland Game</td></tr><tr><td>Contact, Alien</td><td>Geocache</td><td>Navaid, Green/Red</td><td>Private Field</td><td>VHF Omni-range</td></tr><tr><td>Contact, Ball Cap</td><td>Geocache Found</td><td>Navaid, Green/White</td><td>Puzzle Cache</td><td>VOR-DME</td></tr><tr><td>Contact, Big Ears</td><td>Geographic place name, Man-made</td><td>Navaid, Orange</td><td>RV Park</td><td>VOR/TACAN</td></tr><tr><td>Contact, Biker</td><td>Geographic place name, land</td><td>Navaid, Red</td><td>Radio Beacon</td><td>Virtual cache</td></tr><tr><td>Contact, Blonde</td><td>Geographic place name, water</td><td>Navaid, Red/Green</td><td>Ramp intersection</td><td>Water Hydrant</td></tr><tr><td>Contact, Bug</td><td>Ghost Town</td><td>Navaid, Red/White</td><td>Rectangle, Blue</td><td>Water Source</td></tr><tr><td>Contact, Cat</td><td>Glider Area</td><td>Navaid, Violet</td><td>Rectangle, Green</td><td>Waterfowl</td></tr><tr><td>Contact, Clown</td><td>Golf Course</td><td>Navaid, White</td><td>Rectangle, Red</td><td>Waypoint</td></tr><tr><td>Contact, Dog</td><td>Ground Transportation</td><td>Navaid, White/Green</td><td>Reef</td><td>Webcam Cache</td></tr><tr><td>Contact, Dreadlocks</td><td>Heliport</td><td>Navaid, White/Red</td><td>Residence</td><td>Weed Bed</td></tr><tr><td>Contact, Female1</td><td>Horn</td><td>Non-directional beacon</td><td>Restaurant</td><td>Winery</td></tr><tr><td>Contact, Female2</td><td>Hotel</td><td>Null</td><td>Restricted Area</td><td>Wrecker</td></tr><tr><td>Contact, Female3</td><td>House</td><td>Number 0, Blue</td><td>Restroom</td><td>Zoo</td></tr></table></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="Styles"></a>Appendix C. GPSBabel XCSV Style Files</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#styles_intro">Introduction</a></span></dt><dt><span class="section"><a href="#style_intro2">Style file overview</a></span></dt><dt><span class="section"><a href="#styles_internal_const">Internal Constants</a></span></dt><dt><span class="section"><a href="#style_global">Global Properties of the File</a></span></dt><dt><span class="section"><a href="#style_behavior">GPSBabel Behavior Directives</a></span></dt><dt><span class="section"><a href="#style_layout">Defining the Layout of the File</a></span></dt><dt><span class="section"><a href="#style_define">Defining Fields Within the File</a></span></dt><dt><span class="section"><a href="#style_examples">Examples</a></span></dt><dt><span class="section"><a href="#style_notes">Miscellaneous Notes</a></span></dt></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="styles_intro"></a>Introduction</h2></div></div></div><p>
 Often it is desirable to add a new file format for "one-off" work (perhaps
 you want to export something to a spreadsheet or graphing program) or to read
 a format that GPSBabel does not yet support.   For suitably simple formats,
@@ -3804,7 +3927,7 @@ or want, you must tell GPSBabel to use the xcsv format and have the xcsv
 format use that file.  If you created a new style file called 
 "mystyle.style" and you want to write the  waypoints from
 a GPX file named "mine.gpx" to it, you would issue a command like:
-</p><pre class="screen">gpsbabel -i gpx -f mine.gpx -o xcsv,style=mystyle.style -f mine.new</pre><p>
+</p><p><strong class="userinput"><code>gpsbabel -i gpx -f mine.gpx -o xcsv,style=mystyle.style -f mine.new</code></strong></p><p>
 You might then examine <code class="filename">mine.new</code> to see if it met
 your expectations.  If not, you could continue to tweak 
 <code class="filename">mystyle.style</code> until it did, rerunning the above
@@ -3843,8 +3966,9 @@ PROLOGUE  Name    Latitude        Longitude       Description     URL     Type    Container       Diff    Terr<br />
 <br />
 #<br />
 # INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:<br />
-# NOTE: MS S&amp;T ONLY IMPORTS DATA, IT DOESN'T EXPORT THIS ANYWHERE SO WE CAN<br />
-#       HAVE OUR WAY WITH THE FORMATTING. <br />
+# NOTE: MS S&amp;T ONLY IMPORTS DATA, IT DOESN'T <br />
+#       EXPORT THIS ANYWHERE SO WE CAN HAVE OUR <br />
+#       WAY WITH THE FORMATTING. <br />
 #<br />
 IFIELD SHORTNAME, "", "%s"           # Name<br />
 IFIELD LAT_DECIMAL, "", "%f"         # Latitude<br />
@@ -3890,7 +4014,17 @@ this file.
 </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_global_encoding"></a>ENCODING</h3></div></div></div><p>
 Describes the character set used by this format.  The value given
 must be one listed by 'gpsbabel -l'.    example:
-</p><pre class="screen">   ENCODING             UTF-8  # Use UTF-8 for input and output.
+</p><pre class="screen">   ENCODING          UTF-8     # Use UTF-8 for input and output.
+</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_global_datum"></a>DATUM</h3></div></div></div><p>
+This value specifies the GPS datum to be used on read or write. Valid values for this 
+option are listed in <a href="#Datums" title="Appendix A. Supported Datums">Appendix A, <i>Supported Datums</i></a>.
+</p><pre class="screen">   DATUM             European 1950
+</pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_global_datatype"></a>DATATYPE</h3></div></div></div><p>
+Specifies the kind of data we have to read or write.
+</p><p>
+By default all data are seen as waypoint data. With DATATYPE you are now able to bind
+a specific type to this format. Possible values are WAYPOINT, ROUTE or TRACK.
+</p><pre class="screen">   DATATYPE          ROUTE # route-only format
 </pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="style_behavior"></a>GPSBabel Behavior Directives</h2></div></div></div><p>
 There are a few available directives to control some of the internal 
 processing functions of GPSbabel.
@@ -4025,14 +4159,14 @@ examples:
    is CHARACTER data and requires a character array printf conversion.
 </p><p>
 example:
-</p><pre class="screen">   IFIELD SHORTNAME,"","%s"   # (write shortname in the output file)
+</p><pre class="screen">   IFIELD SHORTNAME,"","%s"
 </pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_description"></a>DESCRIPTION</h3></div></div></div><p>
    A DESCRIPTION is generally a long description of the waypoint.  A 
    DESCRIPTION maps to the GPSBabel variable -&gt;description and is otherwise 
    handled exactly like a SHORTNAME.
 </p><p>
 examples:
-</p><pre class="screen">   IFIELD DESCRIPTION,"","%s" # (write description in the output file)
+</p><pre class="screen">   IFIELD DESCRIPTION,"","%s" 
 </pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_notes"></a>NOTES</h3></div></div></div><p>
    NOTES are generally everything else about a waypoints. NOTES map to the 
    GPSBabel variable -&gt;notes and is otherwise handled exactly like a 
@@ -4042,21 +4176,21 @@ examples:
    -&gt;url and is otherwise handled exactly like a SHORTNAME.
 </p><p>
 example:
-</p><pre class="screen">   IFIELD URL,"","%s" #        (writes the URL in the output file)
+</p><pre class="screen">   IFIELD URL,"","%s"
 </pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_urllinktext"></a>URL_LINK_TEXT</h3></div></div></div><p>
    URL_LINK_TEXT is a textual description of where a URL points.  
    URL_LINK_TEXT maps to the GPSBabel variable -&gt;url_link_text and 
    is otherwise handled exactly like a SHORTNAME.
 </p><p>
 example:
-</p><pre class="screen">   IFIELD URL_LINK_TEXT,"","%s" # (writes link text in the output file)
+</p><pre class="screen">   IFIELD URL_LINK_TEXT,"","%s" 
 </pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_icondescr"></a>ICON_DESCR</h3></div></div></div><p>
    ICON_DESCR is a textual description of an icon type for a waypoint.
    ICON_DESCR maps to the GPSBabel variable -&gt;icon_desc and is otherwise 
    handled exactly like a SHORTNAME.
 </p><p>
 example:
-</p><pre class="screen">   IFIELD ICON_DESCR,"","%s" # (writes link text in the output file)
+</p><pre class="screen">   IFIELD ICON_DESCR,"","%s" 
 </pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_latdec"></a>LAT_DECIMAL</h3></div></div></div><p>
    LAT_DECIMAL defines LATITUDE in DECIMAL format.  Note that this is a PURE 
    signed decimal format (i.e. -91.0000).  This data is handled internally as 
@@ -4102,12 +4236,15 @@ examples:
    latitude and longitude based on what is in the file.
 </p><p>
 examples:
-</p><pre class="screen">   IFIELD LAT_HUMAN_READABLE,"","%c %d %f"   # (writes N 31 40.000)
+</p><pre class="screen">
+   #  (writes N 31 40.000)
+   IFIELD LAT_HUMAN_READABLE,"","%c %d %f"   
+   #  (writes "31 deg 40.000 min N")
    IFIELD LAT_HUMAN_READABLE,"","%d deg %f min %c"
-                              #  (writes "31 deg 40.000 min N")
-          #  Note that this string will confuse the reading routine due 
-          #  to the letter "n" in "min" and the letter "e" in "deg."
-   IFIELD LAT_HUMAN_READABLE,"","%d %d %f%c" # (writes 31 40 00.000N)
+   #  Note that this string will confuse the reading routine due 
+   #  to the letter "n" in "min" and the letter "e" in "deg."
+   # (writes 31 40 00.000N)
+   IFIELD LAT_HUMAN_READABLE,"","%d %d %f%c" 
 </pre></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_lonhuman"></a>LON_HUMAN_READABLE</h3></div></div></div><p>
    See LAT_HUMAN_READABLE except LON_HUMAN_READABLE defines LONGITUDE.
 </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="style_def_latlonhuman"></a>LATLON_HUMAN_READABLE</h3></div></div></div><p>
diff --git a/gpx.c b/gpx.c
index 0541478f937703341fbac978bdba72ac7a838756..b204f5f5a2d967b73f691aa4c7aff2ed1b97696c 100644 (file)
--- a/gpx.c
+++ b/gpx.c
@@ -1,7 +1,7 @@
 /*
     Access GPX data files.
 
-    Copyright (C) 2002, 2003, 2004, 2005 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Robert Lipe, robertlipe@usa.net
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -45,8 +45,8 @@ static vmem_t current_tag;
 
 static waypoint *wpt_tmp;
 static int cache_descr_is_html;
-static FILE *fd;
-static FILE *ofd;
+static gbfile *fd;
+static gbfile *ofd;
 static short_handle mkshort_handle;
 
 static const char *input_string = NULL;
@@ -227,18 +227,18 @@ gpx_write_gdata(gpx_global_entry *ge, char *tag)
                return;
        }
 
-       fprintf(ofd, "<%s>", tag);
+       gbfprintf(ofd, "<%s>", tag);
        QUEUE_FOR_EACH(&ge->queue, elem, tmp) {
                gep = BASE_STRUCT(elem, gpx_global_entry, queue);
-               fprintf(ofd, "%s", gep->tagdata);
+               gbfprintf(ofd, "%s", gep->tagdata);
                /* Some tags we just output once. */
                if ((0 == strcmp(tag, "url")) ||
                        (0 == strcmp(tag, "email"))) {
                        break;
                }
-               fprintf(ofd, " ");
+               gbfprintf(ofd, " ");
        }
-       fprintf(ofd, "</%s>\n", tag);
+       gbfprintf(ofd, "</%s>\n", tag);
 }
 
 
@@ -277,20 +277,28 @@ tag_mapping tag_path_map[] = {
        { tt_wpt_link_text, 0, "/gpx/wpt/link/text", 0UL },             /* GPX 1.1 */
        { tt_wpt_sym, 0, "/gpx/wpt/sym", 0UL },
        { tt_wpt_type, 1, "/gpx/wpt/type", 0UL },
-       
-       { tt_cache, 1, "/gpx/wpt/groundspeak:cache", 0UL },
-       { tt_cache_name, 1, "/gpx/wpt/groundspeak:cache/groundspeak:name", 0UL },
-       { tt_cache_container, 1, "/gpx/wpt/groundspeak:cache/groundspeak:container", 0UL },
-       { tt_cache_type, 1, "/gpx/wpt/groundspeak:cache/groundspeak:type", 0UL },
-       { tt_cache_difficulty, 1, "/gpx/wpt/groundspeak:cache/groundspeak:difficulty", 0UL },
-       { tt_cache_terrain, 1, "/gpx/wpt/groundspeak:cache/groundspeak:terrain", 0UL },
-       { tt_cache_hint, 1, "/gpx/wpt/groundspeak:cache/groundspeak:encoded_hints", 0UL },
-       { tt_cache_desc_short, 1, "/gpx/wpt/groundspeak:cache/groundspeak:short_description", 0UL },
-       { tt_cache_desc_long, 1, "/gpx/wpt/groundspeak:cache/groundspeak:long_description", 0UL },
-       { tt_cache_log_wpt, 1, "/gpx/wpt/groundspeak:cache/groundspeak:logs/groundspeak:log/groundspeak:log_wpt", 0UL },
-       { tt_cache_log_type, 1, "/gpx/wpt/groundspeak:cache/groundspeak:logs/groundspeak:log/groundspeak:type", 0UL },
-       { tt_cache_log_date, 1, "/gpx/wpt/groundspeak:cache/groundspeak:logs/groundspeak:log/groundspeak:date", 0UL },
-       { tt_cache_placer, 1, "/gpx/wpt/groundspeak:cache/groundspeak:owner", 0UL },
+
+       /* Double up the GPX 1.0 and GPX 1.1 styles */
+#define GEOTAG(type,name) \
+  {type, 1, "/gpx/wpt/groundspeak:cache/groundspeak:" name, 0UL }, \
+  {type, 1, "/gpx/wpt/extensions/cache/" name, 0UL }
+
+       GEOTAG( tt_cache,               "cache"),
+       GEOTAG( tt_cache_name,          "name"),
+       GEOTAG( tt_cache_container,     "container"),
+       GEOTAG( tt_cache_type,          "type"),
+       GEOTAG( tt_cache_difficulty,    "difficulty"),
+       GEOTAG( tt_cache_terrain,       "terrain"),
+       GEOTAG( tt_cache_hint,          "encoded_hints"),
+       GEOTAG( tt_cache_desc_short,    "short_description"),
+       GEOTAG( tt_cache_desc_long,     "long_description"),
+       GEOTAG( tt_cache_placer,        "owner"),
+       { tt_cache_log_wpt, 1, "/gpx/wpt/groundspeak:cache/groundspeak:logs/groundspeak:log/groundspeak:log_wpt"},
+       { tt_cache_log_wpt, 1, "/gpx/wpt/extensions/cache/logs/log/log_wpt"},
+       { tt_cache_log_type, 1, "/gpx/wpt/groundspeak:cache/groundspeak:logs/groundspeak:log/groundspeak:type"},
+       { tt_cache_log_type, 1, "/gpx/wpt/extensions/cache/logs/log/type"},
+       { tt_cache_log_date, 1, "/gpx/wpt/groundspeak:cache/groundspeak:logs/groundspeak:log/groundspeak:date"},
+       { tt_cache_log_date, 1, "/gpx/wpt/extensions/cache/logs/log/date"},
        
        { tt_garmin_extension, 0, "/gpx/wpt/extensions", 0UL },
        { tt_garmin_waypt_extension, 0, "/gpx/wpt/extensions/gpxx:WaypointExtension", 0UL },
@@ -726,7 +734,7 @@ gs_get_container(geocache_container t)
 }
 
 time_t 
-xml_parse_time( const char *cdatastr ) 
+xml_parse_time( const char *cdatastr, int *microsecs ) 
 {
        int off_hr = 0;
        int off_min = 0;
@@ -766,6 +774,12 @@ xml_parse_time( const char *cdatastr )
        
        pointstr = strchr( timestr, '.' );
        if ( pointstr ) {
+               if (microsecs) {
+                       double fsec;
+                       sscanf(pointstr, "%le", &fsec);
+                       /* Round to avoid FP jitter */
+                       *microsecs = .5 + (fsec * 1000000.0) ;
+               }
                *pointstr = '\0';
        }
        
@@ -890,7 +904,7 @@ gpx_end(void *data, const XML_Char *xml_el)
                wpt_tmp->gc_data.placer = xstrdup(cdatastrp);
                break;
        case tt_cache_log_date:
-               gc_log_date = xml_parse_time( cdatastrp );
+               gc_log_date = xml_parse_time( cdatastrp, NULL );
                break;
        /*
         * "Found it" logs follow the date according to the schema,
@@ -981,7 +995,7 @@ gpx_end(void *data, const XML_Char *xml_el)
        case tt_wpt_time:
        case tt_trk_trkseg_trkpt_time:
        case tt_rte_rtept_time:
-               wpt_tmp->creation_time = xml_parse_time( cdatastrp );
+               wpt_tmp->creation_time = xml_parse_time( cdatastrp, &wpt_tmp->microseconds );
                break;
        case tt_wpt_cmt:
        case tt_rte_rtept_cmt:
@@ -1097,7 +1111,7 @@ static void
 gpx_rd_init(const char *fname)
 {
        if ( fname[0] ) {
-               fd = xfopen(fname, "r", MYNAME);
+               fd = gbfopen(fname, "r", MYNAME);
        }
        else {
                fd = NULL;
@@ -1173,7 +1187,7 @@ gpx_rd_deinit(void)
                gpx_author = NULL;
        }
        if (fd) {
-               fclose(fd);
+               gbfclose(fd);
        }
        XML_ParserFree(psr);
        psr = NULL;
@@ -1187,13 +1201,13 @@ gpx_wr_init(const char *fname)
 {
        mkshort_handle = mkshort_new_handle();
 
-       ofd = xfopen(fname, "w", MYNAME);
+       ofd = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 gpx_wr_deinit(void)
 {
-       fclose(ofd);
+       gbfclose(ofd);
        mkshort_del_handle(&mkshort_handle);
 }
 
@@ -1225,16 +1239,19 @@ gpx_read(void)
                        char *badchar;
                        char *semi;
                        int maxentlength = 8;
-                       len = fread(buf, 1, MY_CBUF_SZ - maxentlength, fd);
-                       done = feof(fd) || !len;
+                       len = gbfread(buf, 1, MY_CBUF_SZ - maxentlength, fd);
+                       done = gbfeof(fd) || !len;
                        buf[len] = '\0';
+                       if (len < maxentlength) {
+                               maxentlength = len;
+                       }
                        badchar = buf+len-maxentlength;
                        badchar = strchr( badchar, '&' );
                        extra = maxentlength - 1; /* for terminator */
                        while ( badchar && len < MY_CBUF_SZ-1) {
                                semi = strchr( badchar, ';');
                                while ( extra && !semi ) {
-                                       len += fread( buf+len, 1, 1, fd);
+                                       len += gbfread( buf+len, 1, 1, fd);
                                        buf[len]='\0';
                                        extra--;
                                        if ( buf[len-1] == ';') 
@@ -1292,15 +1309,15 @@ static void
 fprint_tag_and_attrs( char *prefix, char *suffix, xml_tag *tag )
 {
        char **pa;
-       fprintf( ofd, "%s%s", prefix, tag->tagname );
+       gbfprintf( ofd, "%s%s", prefix, tag->tagname );
        pa = tag->attributes;
        if ( pa ) {
                while ( *pa ) {
-                       fprintf( ofd, " %s=\"%s\"", pa[0], pa[1] );
+                       gbfprintf( ofd, " %s=\"%s\"", pa[0], pa[1] );
                        pa += 2;
                }
        }
-       fprintf( ofd, "%s", suffix );
+       gbfprintf( ofd, "%s", suffix );
 }
 
 static void
@@ -1316,7 +1333,7 @@ fprint_xml_chain( xml_tag *tag, const waypoint *wpt )
                
                        if ( tag->cdata ) {
                                tmp_ent = xml_entitize( tag->cdata );
-                               fprintf( ofd, "%s", tmp_ent );
+                               gbfprintf( ofd, "%s", tmp_ent );
                                xfree(tmp_ent);
                        }
                        if ( tag->child ) {
@@ -1324,14 +1341,14 @@ fprint_xml_chain( xml_tag *tag, const waypoint *wpt )
                        }
                        if ( wpt && wpt->gc_data.exported &&
                            strcmp(tag->tagname, "groundspeak:cache" ) == 0 ) {
-                               xml_write_time( ofd, wpt->gc_data.exported, 
+                               xml_write_time( ofd, wpt->gc_data.exported, 0,
                                                "groundspeak:exported" );
                        }
-                       fprintf( ofd, "</%s>\n", tag->tagname);
+                       gbfprintf( ofd, "</%s>\n", tag->tagname);
                }
                if ( tag->parentcdata ) {
                        tmp_ent = xml_entitize(tag->parentcdata);
-                       fprintf(ofd, "%s", tmp_ent );
+                       gbfprintf(ofd, "%s", tmp_ent );
                        xfree(tmp_ent);
                }
                tag = tag->sibling;     
@@ -1383,13 +1400,13 @@ write_gpx_url(const waypoint *waypointp)
                tmp_ent = xml_entitize(waypointp->url);
                if (gpx_wversion_num > 10) {
                        
-                       fprintf(ofd, "  <link href=\"%s%s\">\n", 
+                       gbfprintf(ofd, "  <link href=\"%s%s\">\n", 
                                urlbase ? urlbase : "", tmp_ent);
                        write_optional_xml_entity(ofd, "  ", "text", 
                                waypointp->url_link_text);
-                       fprintf(ofd, "  </link>\n");
+                       gbfprintf(ofd, "  </link>\n");
                } else {
-                       fprintf(ofd, "  <url>%s%s</url>\n", 
+                       gbfprintf(ofd, "  <url>%s%s</url>\n", 
                                urlbase ? urlbase : "", tmp_ent);
                        write_optional_xml_entity(ofd, "  ", "urlname", 
                                waypointp->url_link_text);
@@ -1430,19 +1447,19 @@ gpx_write_common_acc(const waypoint *waypointp, const char *indent)
                        break;
        }
        if (fix) {
-               fprintf(ofd, "%s<fix>%s</fix>\n", indent, fix);
+               gbfprintf(ofd, "%s<fix>%s</fix>\n", indent, fix);
        }
        if (waypointp->sat > 0) {
-               fprintf(ofd, "%s<sat>%d</sat>\n", indent, waypointp->sat);
+               gbfprintf(ofd, "%s<sat>%d</sat>\n", indent, waypointp->sat);
        }
        if (waypointp->hdop) {
-               fprintf(ofd, "%s<hdop>%f</hdop>\n", indent, waypointp->hdop);
+               gbfprintf(ofd, "%s<hdop>%f</hdop>\n", indent, waypointp->hdop);
        }
        if (waypointp->vdop) {
-               fprintf(ofd, "%s<vdop>%f</vdop>\n", indent, waypointp->vdop);
+               gbfprintf(ofd, "%s<vdop>%f</vdop>\n", indent, waypointp->vdop);
        }
        if (waypointp->pdop) {
-               fprintf(ofd, "%s<pdop>%f</pdop>\n", indent, waypointp->pdop);
+               gbfprintf(ofd, "%s<pdop>%f</pdop>\n", indent, waypointp->pdop);
        }
 }
 
@@ -1450,11 +1467,11 @@ static void
 gpx_write_common_position(const waypoint *waypointp, const char *indent)
 {
        if (waypointp->altitude != unknown_alt) {
-               fprintf(ofd, "%s<ele>%f</ele>\n",
+               gbfprintf(ofd, "%s<ele>%f</ele>\n",
                         indent, waypointp->altitude);
        }
        if (waypointp->creation_time) {
-               xml_write_time(ofd, waypointp->creation_time, "time");
+               xml_write_time(ofd, waypointp->creation_time, waypointp->microseconds, "time");
        }
 }
 
@@ -1494,7 +1511,7 @@ gpx_waypt_pr(const waypoint *waypointp)
                                  mkshort(mkshort_handle, odesc) : 
                                  waypointp->shortname;
 
-       fprintf(ofd, "<wpt lat=\"" FLT_FMT "\" lon=\"" FLT_FMT "\">\n",
+       gbfprintf(ofd, "<wpt lat=\"" FLT_FMT "\" lon=\"" FLT_FMT "\">\n",
                waypointp->latitude,
                waypointp->longitude);
 
@@ -1509,7 +1526,7 @@ gpx_waypt_pr(const waypoint *waypointp)
        if (gpx_wversion_num > 10) {
                garmin_fs_xml_fprint(ofd, waypointp);
        }
-       fprintf(ofd, "</wpt>\n");
+       gbfprintf(ofd, "</wpt>\n");
 }
 
 static void
@@ -1517,13 +1534,13 @@ gpx_track_hdr(const route_head *rte)
 {
        fs_xml *fs_gpx;
 
-       fprintf(ofd, "<trk>\n");
+       gbfprintf(ofd, "<trk>\n");
        write_optional_xml_entity(ofd, "  ", "name", rte->rte_name);
        write_optional_xml_entity(ofd, "  ", "desc", rte->rte_desc);
        if (rte->rte_num) {
-               fprintf(ofd, "<number>%d</number>\n", rte->rte_num);
+               gbfprintf(ofd, "<number>%d</number>\n", rte->rte_num);
        }
-       fprintf(ofd, "<trkseg>\n");
+       gbfprintf(ofd, "<trkseg>\n");
 
        fs_gpx = (fs_xml *)fs_chain_find( rte->fs, FS_GPX );
        if ( fs_gpx ) {
@@ -1536,7 +1553,7 @@ gpx_track_disp(const waypoint *waypointp)
 {
        fs_xml *fs_gpx;
 
-       fprintf(ofd, "<trkpt lat=\"" FLT_FMT_T "\" lon=\"" FLT_FMT_T "\">\n",
+       gbfprintf(ofd, "<trkpt lat=\"" FLT_FMT_T "\" lon=\"" FLT_FMT_T "\">\n",
                waypointp->latitude,
                waypointp->longitude);
 
@@ -1545,11 +1562,11 @@ gpx_track_disp(const waypoint *waypointp)
        /* These were accidentally removed from 1.1 */
        if (gpx_wversion_num == 10) {
                if (waypointp->course >= 0) {
-                       fprintf(ofd, "  <course>%f</course>\n", 
+                       gbfprintf(ofd, "  <course>%f</course>\n", 
                                waypointp->course);
                }
                if (waypointp->speed >= 0) {
-                       fprintf(ofd, "  <speed>%f</speed>\n", 
+                       gbfprintf(ofd, "  <speed>%f</speed>\n", 
                                waypointp->speed);
                }
        }
@@ -1567,14 +1584,14 @@ gpx_track_disp(const waypoint *waypointp)
                fprint_xml_chain( fs_gpx->tag, waypointp );
        }
 
-       fprintf(ofd, "</trkpt>\n");
+       gbfprintf(ofd, "</trkpt>\n");
 }
 
 static void
 gpx_track_tlr(const route_head *rte)
 {
-       fprintf(ofd, "</trkseg>\n");
-       fprintf(ofd, "</trk>\n");
+       gbfprintf(ofd, "</trkseg>\n");
+       gbfprintf(ofd, "</trk>\n");
 }
 
 static
@@ -1588,11 +1605,11 @@ gpx_route_hdr(const route_head *rte)
 {
        fs_xml *fs_gpx;
 
-       fprintf(ofd, "<rte>\n");
+       gbfprintf(ofd, "<rte>\n");
        write_optional_xml_entity(ofd, "  ", "name", rte->rte_name);
        write_optional_xml_entity(ofd, "  ", "desc", rte->rte_desc);
        if (rte->rte_num) {
-               fprintf(ofd, "  <number>%d</number>\n", rte->rte_num);
+               gbfprintf(ofd, "  <number>%d</number>\n", rte->rte_num);
        }
 
        fs_gpx = (fs_xml *)fs_chain_find( rte->fs, FS_GPX );
@@ -1606,7 +1623,7 @@ gpx_route_disp(const waypoint *waypointp)
 {
        fs_xml *fs_gpx;
 
-       fprintf(ofd, "  <rtept lat=\"" FLT_FMT_R "\" lon=\"" FLT_FMT_R "\">\n",
+       gbfprintf(ofd, "  <rtept lat=\"" FLT_FMT_R "\" lon=\"" FLT_FMT_R "\">\n",
                waypointp->latitude,
                waypointp->longitude);
 
@@ -1619,13 +1636,13 @@ gpx_route_disp(const waypoint *waypointp)
                fprint_xml_chain( fs_gpx->tag, waypointp );
        }
 
-       fprintf(ofd, "  </rtept>\n");
+       gbfprintf(ofd, "  </rtept>\n");
 }
 
 static void
 gpx_route_tlr(const route_head *rte)
 {
-       fprintf(ofd, "</rte>\n");
+       gbfprintf(ofd, "</rte>\n");
 }
 
 static
@@ -1651,8 +1668,8 @@ gpx_write_bounds(void)
        track_disp_all(NULL, NULL, gpx_waypt_bound_calc);
 
        if (waypt_bounds_valid(&all_bounds)) {
-               fprintf(ofd, "<bounds minlat=\"%0.9f\" minlon =\"%0.9f\" "
-                              "maxlat=\"%0.9f\" maxlon=\"%0.9f\" />\n",
+               gbfprintf(ofd, "<bounds minlat=\"%0.9f\" minlon=\"%0.9f\" "
+                              "maxlat=\"%0.9f\" maxlon=\"%0.9f\"/>\n",
                               all_bounds.min_lat, all_bounds.min_lon, 
                               all_bounds.max_lat, all_bounds.max_lon);
        }
@@ -1680,22 +1697,22 @@ gpx_write(void)
 
        setshort_length(mkshort_handle, short_length);
 
-       fprintf(ofd, "<?xml version=\"1.0\" encoding=\"%s\"?>\n", global_opts.charset_name);
-       fprintf(ofd, "<gpx\n version=\"%s\"\n", gpx_wversion);
-       fprintf(ofd, "creator=\"" CREATOR_NAME_URL "\"\n");
-       fprintf(ofd, "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
-       fprintf(ofd, "xmlns=\"http://www.topografix.com/GPX/%c/%c\"\n", gpx_wversion[0], gpx_wversion[2]);
+       gbfprintf(ofd, "<?xml version=\"1.0\" encoding=\"%s\"?>\n", global_opts.charset_name);
+       gbfprintf(ofd, "<gpx\n version=\"%s\"\n", gpx_wversion);
+       gbfprintf(ofd, "creator=\"" CREATOR_NAME_URL "\"\n");
+       gbfprintf(ofd, "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
+       gbfprintf(ofd, "xmlns=\"http://www.topografix.com/GPX/%c/%c\"\n", gpx_wversion[0], gpx_wversion[2]);
        if (xsi_schema_loc) {
-               fprintf(ofd, "xsi:schemaLocation=\"%s\">\n", xsi_schema_loc);
+               gbfprintf(ofd, "xsi:schemaLocation=\"%s\">\n", xsi_schema_loc);
        } else {
-               fprintf(ofd,
+               gbfprintf(ofd,
                        "xsi:schemaLocation=" DEFAULT_XSI_SCHEMA_LOC_FMT">\n",
                        gpx_wversion[0], gpx_wversion[2],
                        gpx_wversion[0], gpx_wversion[2]);
        }
 
        if (gpx_wversion_num > 10) {    
-               fprintf(ofd, "<metadata>\n");
+               gbfprintf(ofd, "<metadata>\n");
        }
        gpx_write_gdata(&gpx_global->name, "name");
        gpx_write_gdata(&gpx_global->desc, "desc");
@@ -1708,20 +1725,20 @@ gpx_write(void)
        gpx_write_gdata(&gpx_global->email, "email");
        gpx_write_gdata(&gpx_global->url, "url");
        gpx_write_gdata(&gpx_global->urlname, "urlname");
-       xml_write_time( ofd, now, "time" );
+       xml_write_time( ofd, now, 0, "time" );
        gpx_write_gdata(&gpx_global->keywords, "keywords");
 
        gpx_write_bounds();
 
        if (gpx_wversion_num > 10) {    
-               fprintf(ofd, "</metadata>\n");
+               gbfprintf(ofd, "</metadata>\n");
        }
 
        waypt_disp_all(gpx_waypt_pr);
        gpx_route_pr();
        gpx_track_pr();
 
-       fprintf(ofd, "</gpx>\n");
+       gbfprintf(ofd, "</gpx>\n");
 }
 
 
diff --git a/gpxval b/gpxval
index 98e6947701c8d86be8b9482bdbe6d4e6b4518198..ffa5d87b4f6d95c5921dd405baa0baa401f3ed02 100644 (file)
--- a/gpxval
+++ b/gpxval
@@ -1,15 +1,20 @@
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/robertl/xerces-c1_7_0-linux7.2/lib
 export PATH=$PATH:/home/robertl/xerces-c1_7_0-linux7.2/bin
 
+validate()
+{
+       SAX2Count -p -f -v=always $*
+}
+
 gpxval()
 {
        echo "Validating $*"
        ./gpsbabel $* -o gpx -F /tmp/$$.gpx
-       SAX2Count /tmp/$$.gpx
+       validate /tmp/$$.gpx
        ./gpsbabel $* -o gpx,gpxver=1.0 -F /tmp/$$.gpx
-       SAX2Count /tmp/$$.gpx
+       validate /tmp/$$.gpx
        ./gpsbabel $* -o gpx,gpxver=1.1 -F /tmp/$$.gpx
-       SAX2Count /tmp/$$.gpx
+       validate /tmp/$$.gpx
 }
 
 
diff --git a/gtm.c b/gtm.c
index 379eb29a919f4ecb4ab30ffe059ca182db2f1588..a1f7a2a5e6b937bbf2540827fac90b4604f0072b 100644 (file)
--- a/gtm.c
+++ b/gtm.c
@@ -21,7 +21,7 @@
 #include "defs.h"
 #include "jeeps/gpsmath.h"
 
-static FILE *fd, *ofd;
+static gbfile *file_in, *file_out;
 static int indatum;
 static int wp_count;
 static int ws_count;
@@ -49,78 +49,35 @@ static int start_new;
 
 /* Read functions, according to specification. */
 
-static void
-fread_discard(FILE *fd, int len)
-{
-       char buf[1024];
-       fread(buf, 1, len, fd);
-}
-
-static unsigned char
-fread_byte(FILE *fd)
-{
-       unsigned char buf[1];
-       fread(buf, 1, 1, fd);
-       return buf[0];
-}
+#define fread_discard(a,b) gbfseek(a, (b), SEEK_CUR)
+#define fread_byte(a) (unsigned char) gbfgetc(a)
 
 #if 0
 /* not used */
 static short int
-fread_bool(FILE *fd)
+fread_bool(gbfile *fd)
 {
        char buf[2];
-       fread(buf, 2, 1, fd);
+       gbfread(buf, 2, 1, fd);
        return le_read16(buf) ? 1 : 0;
 }
 #endif
 
-static short int
-fread_integer(FILE *fd)
-{
-       char buf[2];
-       fread(buf, 2, 1, fd);
-       return le_read16(buf);
-}
-
-static int
-fread_long(FILE *fd)
-{
-       char buf[4];
-       fread(buf, 4, 1, fd);
-       return le_read32(buf);
-}
-
-static float
-fread_single(FILE *fd)
-{
-       unsigned char buf[4];
-       float f;
-       int i;
-       fread(buf, 4, 1, fd);
-       i = le_read32(buf);
-       memcpy(&f, &i, 4);
-       return f;
-}
-
-static double
-fread_double(FILE *fd)
-{
-       char buf[8];
-       fread(buf, 8, 1, fd);
-       return le_read_double(buf);
-}
+#define fread_integer(a) gbfgetint16(a)
+#define fread_long(a) gbfgetint32(a)
+#define fread_single(a) gbfgetflt(a)
+#define fread_double(a) gbfgetdbl(a)
 
 static char *
-fread_string(FILE *fd)
+fread_string(gbfile *fd)
 {
-       int len = fread_integer(fd);
        char *val;
+       int len = fread_integer(fd);
        
        if (len == 0) return NULL;
        
        val = xmalloc(len+1);
-       fread(val, 1, len, fd);
+       gbfread(val, 1, len, fd);
        while (len != 0 && val[len-1] == ' ')
                len--;
        val[len] = 0;
@@ -128,19 +85,21 @@ fread_string(FILE *fd)
 }
 
 static void
-fread_string_discard(FILE *fd)
+fread_string_discard(gbfile *fd)
 {
        char *temp = fread_string(fd);
+
        if (temp != NULL) {
                xfree(temp);
        }
 }
 
 static char *
-fread_fixedstring(FILE *fd, int len)
+fread_fixedstring(gbfile *fd, int len)
 {
        char *val = xmalloc(len+1);
-       fread(val, 1, len, fd);
+
+       gbfread(val, 1, len, fd);
        while (len != 0 && val[len-1] == ' ')
                len--;
        val[len] = 0;
@@ -150,68 +109,28 @@ fread_fixedstring(FILE *fd, int len)
 /* Write functions, according to specification. */
 
 static void
-fwrite_null(FILE *fd, int len)
+fwrite_null(gbfile *fd, int len)
 {
        char buf[1024];
-       memset(buf, 0, len);
-       fwrite(buf, 1, len, fd);
-}
 
-static void
-fwrite_byte(FILE *fd, unsigned char val)
-{
-       fwrite(&val, 1, 1, fd);
-}
-
-static void
-fwrite_bool(FILE *fd, short int val)
-{
-       char buf[2];
-       buf[0] = buf[1] = val ? 0xff : 0x00;
-       fwrite(buf, 2, 1, fd);
-}
-
-static void
-fwrite_integer(FILE *fd, short int val)
-{
-       char buf[2];
-       le_write16(buf, val);
-       fwrite(buf, 2, 1, fd);
-}
-
-static void
-fwrite_long(FILE *fd, int val)
-{
-       char buf[4];
-       le_write32(buf, val);
-       fwrite(buf, 4, 1, fd);
-}
-
-static void
-fwrite_single(FILE *fd, float val)
-{
-       char buf[4];
-       int i;
-       memcpy(&i, &val, 4);
-       le_write32(buf, i);
-       fwrite(buf, 4, 1, fd);
+       memset(buf, 0, len);
+       gbfwrite(buf, 1, len, fd);
 }
 
-static void
-fwrite_double(FILE *fd, double val)
-{
-       char buf[8];
-       le_write_double(buf,val);
-       fwrite(buf, 8, 1, fd);
-}
+#define fwrite_byte(a,b) gbfputc((signed char)(b), a)
+#define fwrite_bool(a,b) gbfputuint16((b) ? 0xffff : 0, a)
+#define fwrite_integer(a,b) gbfputint16((b), a)
+#define fwrite_long(a,b) gbfputint32((b), a)
+#define fwrite_single(a,b) gbfputflt((b), a)
+#define fwrite_double(a,b) gbfputdbl((b), a)
 
 static void
-fwrite_string(FILE *fd, const char *str)
+fwrite_string(gbfile *fd, const char *str)
 {
        if (str && str[0]) {
                int len = strlen(str);
                fwrite_integer(fd, len);
-               fwrite(str, 1, len, fd);
+               gbfwrite(str, 1, len, fd);
        }
        else {
                fwrite_integer(fd, 0);
@@ -219,15 +138,16 @@ fwrite_string(FILE *fd, const char *str)
 }
 
 void
-fwrite_fixedstring(FILE *fd, const char *str, int fieldlen)
+fwrite_fixedstring(gbfile *fd, const char *str, int fieldlen)
 {
        int len = str ? strlen(str) : 0;
+
        if (len > fieldlen)
                len = fieldlen;
        if (str)
-               fwrite(str, 1, len, fd);
+               gbfwrite(str, 1, len, fd);
        for (; len != fieldlen; len++)
-               fputc(' ', fd);
+               gbfputc(' ', fd);
 }
 
 /* Auxiliar functions */
@@ -442,9 +362,9 @@ gtm_rd_init(const char *fname)
 {
        int version;
        char *name;
-       fd = xfopen(fname, "rb", MYNAME);
-       version = fread_integer(fd);
-       name = fread_fixedstring(fd, 10);
+       file_in = gbfopen_le(fname, "rb", MYNAME);
+       version = fread_integer(file_in);
+       name = fread_fixedstring(file_in, 10);
        if (version == -29921)
                fatal(MYNAME ": Uncompress the file first\n");
        if (strcmp(name, "TrackMaker") != 0)
@@ -454,31 +374,31 @@ gtm_rd_init(const char *fname)
        xfree(name);
 
        /* Header */
-       fread_discard(fd, 15);
-       ws_count = fread_long(fd);
-       fread_discard(fd, 4);
-       wp_count = fread_long(fd);
-       tr_count = fread_long(fd);
-       rt_count = fread_long(fd);
-       fread_discard(fd, 16);
-       im_count = fread_long(fd);
-       ts_count = fread_long(fd);
-       fread_discard(fd, 28);
-       fread_string_discard(fd);
-       fread_string_discard(fd);
-       fread_string_discard(fd);
-       fread_string_discard(fd);
+       fread_discard(file_in, 15);
+       ws_count = fread_long(file_in);
+       fread_discard(file_in, 4);
+       wp_count = fread_long(file_in);
+       tr_count = fread_long(file_in);
+       rt_count = fread_long(file_in);
+       fread_discard(file_in, 16);
+       im_count = fread_long(file_in);
+       ts_count = fread_long(file_in);
+       fread_discard(file_in, 28);
+       fread_string_discard(file_in);
+       fread_string_discard(file_in);
+       fread_string_discard(file_in);
+       fread_string_discard(file_in);
 
        /* User Grid and Datum */
-       fread_discard(fd, 34);
-       set_datum(fread_integer(fd));
-       fread_discard(fd, 22);
+       fread_discard(file_in, 34);
+       set_datum(fread_integer(file_in));
+       fread_discard(file_in, 22);
 }
 
 static void 
 gtm_rd_deinit(void) 
 {
-       fclose(fd);
+       gbfclose(file_in);
 }
 
 static void count_route_waypts(const waypoint *wpt) { rt_count++; }
@@ -491,58 +411,58 @@ gtm_wr_init(const char *fname)
        track_disp_all(NULL, NULL, count_track_waypts);
        route_disp_all(NULL, NULL, count_route_waypts);
 
-       ofd = xfopen(fname, "wb", MYNAME);
+       file_out = gbfopen_le(fname, "wb", MYNAME);     /* little endian */
 
        /* Header */
-       fwrite_integer(ofd, 211);
-       fwrite_fixedstring(ofd, "TrackMaker", 10);
-       fwrite_byte(ofd, 0);
-       fwrite_byte(ofd, 0);
-       fwrite_byte(ofd, 8);
-       fwrite_byte(ofd, 0);
-       fwrite_byte(ofd, 0);
-       fwrite_byte(ofd, 0);
-       fwrite_byte(ofd, 0);
-       fwrite_long(ofd, 0);
-       fwrite_long(ofd, 16777215);
-       fwrite_long(ofd, waypt_count() ? 4 : 0); /* num waypoint styles */
-       fwrite_long(ofd, 0);
-       fwrite_long(ofd, waypt_count()); /* num waypoints */
-       fwrite_long(ofd, tr_count);
-       fwrite_long(ofd, rt_count);
-       fwrite_single(ofd, 0); /* maxlon */
-       fwrite_single(ofd, 0); /* minlon */
-       fwrite_single(ofd, 0); /* maxlat */
-       fwrite_single(ofd, 0); /* minlat */
-       fwrite_long(ofd, 0);
-       fwrite_long(ofd, track_count()); /* num tracklog styles */
-       fwrite_single(ofd, 0);
-       fwrite_single(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_bool(ofd, 0);
-       fwrite_string(ofd, "Times New Roman");
-       fwrite_string(ofd, "");
-       fwrite_string(ofd, "");
-       fwrite_string(ofd, "");
+       fwrite_integer(file_out, 211);
+       fwrite_fixedstring(file_out, "TrackMaker", 10);
+       fwrite_byte(file_out, 0);
+       fwrite_byte(file_out, 0);
+       fwrite_byte(file_out, 8);
+       fwrite_byte(file_out, 0);
+       fwrite_byte(file_out, 0);
+       fwrite_byte(file_out, 0);
+       fwrite_byte(file_out, 0);
+       fwrite_long(file_out, 0);
+       fwrite_long(file_out, 16777215);
+       fwrite_long(file_out, waypt_count() ? 4 : 0); /* num waypoint styles */
+       fwrite_long(file_out, 0);
+       fwrite_long(file_out, waypt_count()); /* num waypoints */
+       fwrite_long(file_out, tr_count);
+       fwrite_long(file_out, rt_count);
+       fwrite_single(file_out, 0); /* maxlon */
+       fwrite_single(file_out, 0); /* minlon */
+       fwrite_single(file_out, 0); /* maxlat */
+       fwrite_single(file_out, 0); /* minlat */
+       fwrite_long(file_out, 0);
+       fwrite_long(file_out, track_count()); /* num tracklog styles */
+       fwrite_single(file_out, 0);
+       fwrite_single(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_bool(file_out, 0);
+       fwrite_string(file_out, "Times New Roman");
+       fwrite_string(file_out, "");
+       fwrite_string(file_out, "");
+       fwrite_string(file_out, "");
 
        /* User Grid and Datum */
-       fwrite_null(ofd, 34);
-       fwrite_integer(ofd, 217); /* WGS84 */
-       fwrite_null(ofd, 22);
+       fwrite_null(file_out, 34);
+       fwrite_integer(file_out, 217); /* WGS84 */
+       fwrite_null(file_out, 22);
 }
 
 static void
 gtm_wr_deinit(void)
 {
-       fclose(ofd);
+       gbfclose(file_out);
 }
 
 static void
@@ -559,54 +479,54 @@ gtm_read(void)
 
        /* Image information */
        for (i = 0; i != im_count; i++) {
-               fread_string_discard(fd);
-               fread_string_discard(fd);
-               fread_discard(fd, 30);
+               fread_string_discard(file_in);
+               fread_string_discard(file_in);
+               fread_discard(file_in, 30);
        }
 
        /* Waypoints */
        for (i = 0; i != wp_count; i++) {
                wpt = waypt_new();
-               wpt->latitude = fread_double(fd);
-               wpt->longitude = fread_double(fd);
+               wpt->latitude = fread_double(file_in);
+               wpt->longitude = fread_double(file_in);
                convert_datum(&wpt->latitude, &wpt->longitude);
-               wpt->shortname = fread_fixedstring(fd, 10);
-               wpt->description = fread_string(fd);
-               icon = fread_integer(fd);
+               wpt->shortname = fread_fixedstring(file_in, 10);
+               wpt->description = fread_string(file_in);
+               icon = fread_integer(file_in);
                if (icon < sizeof(icon_descr)/sizeof(char*))
                        wpt->icon_descr = icon_descr[icon];
-               fread_discard(fd, 1);
-               wpt->creation_time = fread_long(fd);
+               fread_discard(file_in, 1);
+               wpt->creation_time = fread_long(file_in);
                if (wpt->creation_time)
                        wpt->creation_time += EPOCH89DIFF;
-               fread_discard(fd, 2);
-               wpt->altitude = fread_single(fd);
+               fread_discard(file_in, 2);
+               wpt->altitude = fread_single(file_in);
                if (wpt->altitude == unknown_alt_gtm)
                        wpt->altitude = unknown_alt;
-               fread_discard(fd, 2);
+               fread_discard(file_in, 2);
                waypt_add(wpt);
        }
 
        /* Waypoint Styles */
        if (wp_count) {
                for (i = 0; i != ws_count; i++) {
-                       fread_discard(fd, 4);
-                       fread_string_discard(fd);
-                       fread_discard(fd, 24);
+                       fread_discard(file_in, 4);
+                       fread_string_discard(file_in);
+                       fread_discard(file_in, 24);
                }
        }
 
        /* Tracklogs */
        for (i = 0; i != tr_count; i++) {
                wpt = waypt_new();
-               wpt->latitude = fread_double(fd);
-               wpt->longitude = fread_double(fd);
+               wpt->latitude = fread_double(file_in);
+               wpt->longitude = fread_double(file_in);
                convert_datum(&wpt->latitude, &wpt->longitude);
-               wpt->creation_time = fread_long(fd);
+               wpt->creation_time = fread_long(file_in);
                if (wpt->creation_time)
                        wpt->creation_time += EPOCH89DIFF;
-               start_new = fread_byte(fd);
-               wpt->altitude = fread_single(fd);
+               start_new = fread_byte(file_in);
+               wpt->altitude = fread_single(file_in);
                if (wpt->altitude == unknown_alt_gtm)
                        wpt->altitude = unknown_alt;
                if (start_new || !trk_head) {
@@ -622,30 +542,30 @@ gtm_read(void)
        /* Tracklog styles */
        trk_head = first_trk_head;
        for (i = 0; i != ts_count && i != real_tr_count; i++) {
-               trk_head->rte_name = fread_string(fd);
-               fread_discard(fd, 12);
+               trk_head->rte_name = fread_string(file_in);
+               fread_discard(file_in, 12);
                trk_head = (route_head *)QUEUE_NEXT(&trk_head->Q);
        }
 
        /* Routes */
        for (i = 0; i != rt_count; i++) {
                wpt = waypt_new();
-               wpt->latitude = fread_double(fd);
-               wpt->longitude = fread_double(fd);
+               wpt->latitude = fread_double(file_in);
+               wpt->longitude = fread_double(file_in);
                convert_datum(&wpt->latitude, &wpt->longitude);
-               wpt->shortname = fread_fixedstring(fd, 10);
-               wpt->description = fread_string(fd);
-               route_name = fread_string(fd);
-               icon = fread_integer(fd);
+               wpt->shortname = fread_fixedstring(file_in, 10);
+               wpt->description = fread_string(file_in);
+               route_name = fread_string(file_in);
+               icon = fread_integer(file_in);
                if (icon < sizeof(icon_descr)/sizeof(char*))
                        wpt->icon_descr = icon_descr[icon];
-               fread_discard(fd, 1);
-               start_new = fread_byte(fd);
-               fread_discard(fd, 6);
-               wpt->altitude = fread_single(fd);
+               fread_discard(file_in, 1);
+               start_new = fread_byte(file_in);
+               fread_discard(file_in, 6);
+               wpt->altitude = fread_single(file_in);
                if (wpt->altitude == unknown_alt_gtm)
                        wpt->altitude = unknown_alt;
-               fread_discard(fd, 2);
+               fread_discard(file_in, 2);
 
                if (start_new || !rte_head) {
                        rte_head = route_head_alloc();
@@ -672,22 +592,22 @@ int icon_from_descr(const char *descr)
 
 static void write_waypt(const waypoint *wpt)
 {
-       fwrite_double(ofd, wpt->latitude);
-       fwrite_double(ofd, wpt->longitude);
-       fwrite_fixedstring(ofd, wpt->shortname, 10);
-       fwrite_string(ofd, wpt->description);
-       fwrite_integer(ofd, icon_from_descr(wpt->icon_descr));
-       fwrite_byte(ofd, 3);
+       fwrite_double(file_out, wpt->latitude);
+       fwrite_double(file_out, wpt->longitude);
+       fwrite_fixedstring(file_out, wpt->shortname, 10);
+       fwrite_string(file_out, wpt->description);
+       fwrite_integer(file_out, icon_from_descr(wpt->icon_descr));
+       fwrite_byte(file_out, 3);
        if (wpt->creation_time)
-               fwrite_long(ofd, wpt->creation_time-EPOCH89DIFF);
+               fwrite_long(file_out, wpt->creation_time-EPOCH89DIFF);
        else
-               fwrite_long(ofd, 0);
-       fwrite_integer(ofd, 0);
+               fwrite_long(file_out, 0);
+       fwrite_integer(file_out, 0);
        if (wpt->altitude == unknown_alt)
-               fwrite_single(ofd, unknown_alt_gtm);
+               fwrite_single(file_out, unknown_alt_gtm);
        else
-               fwrite_single(ofd, wpt->altitude);
-       fwrite_integer(ofd, 0);
+               fwrite_single(file_out, wpt->altitude);
+       fwrite_integer(file_out, 0);
 }
 
 static void start_rte(const route_head *rte)
@@ -698,44 +618,44 @@ static void start_rte(const route_head *rte)
 
 static void write_trk_waypt(const waypoint *wpt)
 {
-       fwrite_double(ofd, wpt->latitude);
-       fwrite_double(ofd, wpt->longitude);
-       fwrite_long(ofd, wpt->creation_time-EPOCH89DIFF);
-       fwrite_byte(ofd, start_new);
+       fwrite_double(file_out, wpt->latitude);
+       fwrite_double(file_out, wpt->longitude);
+       fwrite_long(file_out, wpt->creation_time-EPOCH89DIFF);
+       fwrite_byte(file_out, start_new);
        if (wpt->altitude == unknown_alt)
-               fwrite_single(ofd, unknown_alt_gtm);
+               fwrite_single(file_out, unknown_alt_gtm);
        else
-               fwrite_single(ofd, wpt->altitude);
+               fwrite_single(file_out, wpt->altitude);
        start_new = 0;
 }
 
 static void write_trk_style(const route_head *trk)
 {
-       fwrite_string(ofd, trk->rte_name);
-       fwrite_byte(ofd, 1);
-       fwrite_long(ofd, 0);
-       fwrite_single(ofd, 0);
-       fwrite_byte(ofd, 0);
-       fwrite_integer(ofd, 0);
+       fwrite_string(file_out, trk->rte_name);
+       fwrite_byte(file_out, 1);
+       fwrite_long(file_out, 0);
+       fwrite_single(file_out, 0);
+       fwrite_byte(file_out, 0);
+       fwrite_integer(file_out, 0);
 }
 
 static void write_rte_waypt(const waypoint *wpt)
 {
-       fwrite_double(ofd, wpt->latitude);
-       fwrite_double(ofd, wpt->longitude);
-       fwrite_fixedstring(ofd, wpt->shortname, 10);
-       fwrite_string(ofd, wpt->description);
-       fwrite_string(ofd, rte_active->rte_name);
-       fwrite_integer(ofd, icon_from_descr(wpt->icon_descr));
-       fwrite_byte(ofd, 3);
-       fwrite_byte(ofd, start_new);
-       fwrite_long(ofd, 0);
-       fwrite_integer(ofd, 0);
+       fwrite_double(file_out, wpt->latitude);
+       fwrite_double(file_out, wpt->longitude);
+       fwrite_fixedstring(file_out, wpt->shortname, 10);
+       fwrite_string(file_out, wpt->description);
+       fwrite_string(file_out, rte_active->rte_name);
+       fwrite_integer(file_out, icon_from_descr(wpt->icon_descr));
+       fwrite_byte(file_out, 3);
+       fwrite_byte(file_out, start_new);
+       fwrite_long(file_out, 0);
+       fwrite_integer(file_out, 0);
        if (wpt->altitude == unknown_alt)
-               fwrite_single(ofd, unknown_alt_gtm);
+               fwrite_single(file_out, unknown_alt_gtm);
        else
-               fwrite_single(ofd, wpt->altitude);
-       fwrite_integer(ofd, 0);
+               fwrite_single(file_out, wpt->altitude);
+       fwrite_integer(file_out, 0);
        start_new = 0;
 }
 
@@ -744,7 +664,7 @@ gtm_write(void)
 {
        waypt_disp_all(write_waypt);
        if (waypt_count())
-               fwrite(WAYPOINTSTYLES, 1, sizeof(WAYPOINTSTYLES)-1, ofd);
+               gbfwrite(WAYPOINTSTYLES, 1, sizeof(WAYPOINTSTYLES)-1, file_out);
        track_disp_all(start_rte, NULL, write_trk_waypt);
        track_disp_all(write_trk_style, NULL, NULL);
        route_disp_all(start_rte, NULL, write_rte_waypt);
index b3885131f8708096413299daa71af62f081f483a..07425d417bddf87927c29ffc3b8f4127093b9220 100644 (file)
--- a/gtrnctr.c
+++ b/gtrnctr.c
@@ -1,7 +1,7 @@
 /*
     Access Garmin Training Center (Forerunner/Foretracker/Edge) data files.
 
-    Copyright (C) 2006 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2006, 2007 Robert Lipe, robertlipe@usa.net
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -127,7 +127,7 @@ gtc_waypt_pr(const waypoint *wpt)
        gtc_write_xml(1, "<Trackpoint>\n");
        if (wpt->creation_time) {
                char time_string[100];
-               xml_fill_in_time(time_string, wpt->creation_time, 
+               xml_fill_in_time(time_string, wpt->creation_time, wpt->microseconds,
                        XML_LONG_TIME);
                if (time_string[0]) {
                        gtc_write_xml(0, "<Time>%s</Time>\n", 
@@ -227,7 +227,7 @@ gtc_write(void)
 
        if (gtc_least_time) {
                char time_string[100];
-               xml_fill_in_time(time_string, gtc_least_time, XML_LONG_TIME);
+               xml_fill_in_time(time_string, gtc_least_time, 0, XML_LONG_TIME);
                gtc_write_xml(1, "<Lap StartTime=\"%s\">\n", time_string);
        } else {
                gtc_write_xml(1, "<Lap>\n");
@@ -271,7 +271,7 @@ void        gl_trk_pnt_e(const char *args, const char **unused)
 
 void   gl_trk_utc(const char *args, const char **unused)
 {
-       wpt_tmp->creation_time = xml_parse_time(args);
+       wpt_tmp->creation_time = xml_parse_time(args, NULL);
 }
 
 void   gl_trk_lat(const char *args, const char **unused)
index c8e0ccced46c62d25e4282060ff9d510b97a07f8..c5f35b08d448b265d748a4a1f03e3bbbb2b94e56 100644 (file)
@@ -22,7 +22,7 @@
 #include "defs.h"
 #include "xmlgeneric.h"
 
-static FILE *ofd;
+static gbfile *ofd;
 static waypoint *wpt_tmp;
 static route_head *trk_head;
 
@@ -94,26 +94,26 @@ hiketech_rd_deinit(void)
 static void
 hiketech_wr_init(const char *fname)
 {
-        ofd = xfopen(fname, "w", MYNAME);
+        ofd = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 hiketech_wr_deinit(void)
 {
-        fclose(ofd);
+        gbfclose(ofd);
 }
 
 static void
 hiketech_trk_hdr(const route_head *rte)
 {
-       fprintf(ofd, "<trk>\n");
+       gbfprintf(ofd, "<trk>\n");
        write_optional_xml_entity(ofd, " ", "ident", rte->rte_name);
 }
 
 static void
 hiketech_trk_tlr(const route_head *rte)
 {
-       fprintf(ofd, "</trk>\n");
+       gbfprintf(ofd, "</trk>\n");
 }
 
 static void
@@ -121,52 +121,52 @@ hiketech_print_utc(time_t tm, const char *indent, const char *tag)
 {
        char tbuf[80];
         strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %I:%M:%S", gmtime(&tm));
-       fprintf(ofd, "%s<%s>%s</%s>\n",indent,tag,tbuf,tag);
+       gbfprintf(ofd, "%s<%s>%s</%s>\n",indent,tag,tbuf,tag);
 }
 
 static void
 hiketech_trkpt_pr(const waypoint *waypointp)
 {
-       fprintf(ofd, " <pnt>\n");
+       gbfprintf(ofd, " <pnt>\n");
        if (waypointp->creation_time) {
                hiketech_print_utc(waypointp->creation_time, "  ", "utc");
        }
-       fprintf(ofd, "  <lat>%f</lat>\n", waypointp->latitude);
-       fprintf(ofd, "  <long>%f</long>\n", waypointp->longitude);
+       gbfprintf(ofd, "  <lat>%f</lat>\n", waypointp->latitude);
+       gbfprintf(ofd, "  <long>%f</long>\n", waypointp->longitude);
        if (waypointp->altitude != unknown_alt) {
-               fprintf(ofd, "  <alt>%f</alt>\n",
+               gbfprintf(ofd, "  <alt>%f</alt>\n",
                         waypointp->altitude);
        }
-       fprintf(ofd, " </pnt>\n");
+       gbfprintf(ofd, " </pnt>\n");
 }
 
 static void
 hiketech_waypt_pr(const waypoint *wpt)
 {      
-       fprintf(ofd, "<wpt>\n");
+       gbfprintf(ofd, "<wpt>\n");
        write_xml_entity(ofd, "\t", "ident", wpt->shortname);
        write_optional_xml_entity(ofd, "\t", "sym", wpt->icon_descr);
-       fprintf(ofd, "\t<lat>%f</lat>\n", wpt->latitude);
-       fprintf(ofd, "\t<long>%f</long>\n", wpt->longitude);
+       gbfprintf(ofd, "\t<lat>%f</lat>\n", wpt->latitude);
+       gbfprintf(ofd, "\t<long>%f</long>\n", wpt->longitude);
 
        /* 
         * These probably aren't technicallyconstants, but it's all 
         * we can do for now. 
         */
-       fprintf(ofd, "\t<color>\n\t\t<lbl>FAFFB4</lbl>\n\t\t<obj>FF8000</obj>\n\t</color>\n");
-       fprintf(ofd, "</wpt>\n");
+       gbfprintf(ofd, "\t<color>\n\t\t<lbl>FAFFB4</lbl>\n\t\t<obj>FF8000</obj>\n\t</color>\n");
+       gbfprintf(ofd, "</wpt>\n");
 }
 
 static void
 hiketech_write(void)
 {
-       fprintf(ofd, "<hiketech version=\"1.2\" url=\"http://www.hiketech.com\">\n");
-       fprintf(ofd, "<gpsdata>\n");
+       gbfprintf(ofd, "<hiketech version=\"1.2\" url=\"http://www.hiketech.com\">\n");
+       gbfprintf(ofd, "<gpsdata>\n");
        track_disp_all(hiketech_trk_hdr, hiketech_trk_tlr, hiketech_trkpt_pr);
        track_disp_all(NULL, NULL, hiketech_trkpt_pr);
        waypt_disp_all(hiketech_waypt_pr);
-       fprintf(ofd, "</gpsdata>\n");
-       fprintf(ofd, "</hiketech>\n");
+       gbfprintf(ofd, "</gpsdata>\n");
+       gbfprintf(ofd, "</hiketech>\n");
 }
 
 static
diff --git a/holux.c b/holux.c
index df475d6c95d13c447d819c677126b74625299301..a3ffe6baa3a4e13a0ceb645182447ab6027fcca1 100644 (file)
--- a/holux.c
+++ b/holux.c
@@ -32,7 +32,7 @@ History:
 #include "holux.h"
 
 
-static  FILE *file_in;
+static  gbfile *file_in;
 static         unsigned char *HxWFile;
 static  short_handle mkshort_handle;
 static  char fOutname[256];
@@ -41,13 +41,13 @@ static  char fOutname[256];
 
 static void rd_init(const char *fname)
 {
-       file_in = xfopen(fname, "rb", MYNAME);
+       file_in = gbfopen_le(fname, "rb", MYNAME);
 }
 
 
 static void rd_deinit(void)
 {
-       fclose(file_in);
+       gbfclose(file_in);
 }
 
 
@@ -95,7 +95,7 @@ static void data_read(void)
     HxWpt = xcalloc(GM100_WPO_FILE_SIZE, 1);
 
     /* read the wpo file to the data-array */
-    iDataRead = fread( HxWpt, 1, GM100_WPO_FILE_SIZE, file_in );
+    iDataRead = gbfread( HxWpt, 1, GM100_WPO_FILE_SIZE, file_in );
 
     if (iDataRead == 0)
     {
index bb85c71c738a56822c7e6c63071c024158359b56..527bcba635c134885b9bcbde7b6115bd826fd6ef 100644 (file)
--- a/hsa_ndv.c
+++ b/hsa_ndv.c
@@ -36,11 +36,11 @@ static char *routeName = "ROUTENAME";
 #define ATTR_OBJECTNAME                                                "OBJNAM"
 #define ATTR_SHIPNAME                                          "shpnam"
 
-static void readVersion4( FILE* pFile);
+static void readVersion4(gbfile* pFile);
 static void getAttr(const char *data, const char *attr, char **val, char seperator);
 
-static FILE *fd;
-static FILE *ofd;
+static gbfile *fd;
+static gbfile *ofd;
 
 static
 arglist_t hsa_ndv_args[] = {
@@ -209,7 +209,7 @@ hsa_ndv_cdata(void *dta, const XML_Char *s, int len)
 static void
 hsa_ndv_rd_init(const char *fname)
 {
-       fd = xfopen(fname, "r", MYNAME);
+       fd = gbfopen(fname, "r", MYNAME);
 
        psr = XML_ParserCreate(NULL);
        if (!psr) {
@@ -226,26 +226,26 @@ static void
 hsa_ndv_read(void)
 {
        int len;
-       char buf[MY_CBUF];
-       memset(buf, 0, MY_CBUF);
+       char buf[MY_CBUF + 1];
        
-       while ((len = fread(buf, 1, sizeof(buf), fd))) 
+       while ((len = gbfread(buf, 1, sizeof(buf) - 1, fd))) 
        {
                char *bad;
 
-               buf[len-1] = 0;
+               buf[len] = '\0';
                if (NULL != strstr(buf, "nver=1"))
                {//its the older format, not xml
-                       fseek(fd, 0, SEEK_SET);
+                       gbfseek(fd, 0, SEEK_SET);
                        readVersion4(fd);
                        break;
                }
                //grumble - have to remove \x1f's from sirius attributes
-               while (NULL != (bad = strchr(buf, '\x1f')))
+               bad = buf;
+               while (NULL != (bad = strchr(bad, '\x1f')))
                {
                        *bad = REPLACEMENT_SIRIUS_ATTR_SEPARATOR;
                }
-               if (!XML_Parse(psr, buf, len, feof(fd))) {
+               if (!XML_Parse(psr, buf, len, gbfeof(fd))) {
                        fatal(MYNAME ":Parse error at %d: %s\n", 
                                (int) XML_GetCurrentLineNumber(psr),
                                XML_ErrorString(XML_GetErrorCode(psr)));
@@ -289,19 +289,19 @@ hsa_ndv_rd_deinit(void)
        if ( cdatastr ) {
                xfree(cdatastr);
        }
-       fclose(fd);
+       gbfclose(fd);
 }
 
 static void
 hsa_ndv_wr_init(const char *fname)
 {
-       ofd = xfopen(fname, "w", MYNAME);
+       ofd = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 hsa_ndv_wr_deinit(void)
 {
-       fclose(ofd);
+       gbfclose(ofd);
 }
 
 static int legNum = 0;
@@ -310,20 +310,20 @@ static void
 hsa_ndv_waypt_pr(const waypoint *waypointp)
 {
 
-       fprintf(ofd, "\t\t<Object>\n");
+       gbfprintf(ofd, "\t\t<Object>\n");
 
-       fprintf(ofd, "\t\t\t<ClassName>waypnt</ClassName>\n");
+       gbfprintf(ofd, "\t\t\t<ClassName>waypnt</ClassName>\n");
 //ignore these for now, they are s57 specific
 //     fprintf(ofd, "\t\t\t<FeatureNameAgency>0</FeatureNameAgency>\n");
 //     fprintf(ofd, "\t\t\t<FeatureNameSubDiv>1</FeatureNameSubDiv>\n");
 //     fprintf(ofd, "\t\t\t<FeatureNameNumber>1089009023</FeatureNameNumber>\n");
-       fprintf(ofd, "\t\t\t<Attr><![CDATA[attr=grpnam%s\x1ftrnrad50\x1fOBJNAM%s\x1flegnum%i\x1fusrmrk%s\x1fselect2\1f]]></Attr>\n", routeName, waypointp->shortname, legNum, waypointp->description);
-       fprintf(ofd, "\t\t\t<LegAttr><![CDATA[attr=grpnam%s\x1f]]></LegAttr>\n", routeName);
-       fprintf(ofd, "\t\t\t<NumberOfVertexs>1</NumberOfVertexs>\n");
-       fprintf(ofd, "\t\t\t<Latitude>%lf</Latitude>\n", waypointp->latitude);
-       fprintf(ofd, "\t\t\t<Longitude>%lf</Longitude>\n", waypointp->longitude);
+       gbfprintf(ofd, "\t\t\t<Attr><![CDATA[attr=grpnam%s\x1ftrnrad50\x1fOBJNAM%s\x1flegnum%i\x1fusrmrk%s\x1fselect2\1f]]></Attr>\n", routeName, waypointp->shortname, legNum, waypointp->description);
+       gbfprintf(ofd, "\t\t\t<LegAttr><![CDATA[attr=grpnam%s\x1f]]></LegAttr>\n", routeName);
+       gbfprintf(ofd, "\t\t\t<NumberOfVertexs>1</NumberOfVertexs>\n");
+       gbfprintf(ofd, "\t\t\t<Latitude>%lf</Latitude>\n", waypointp->latitude);
+       gbfprintf(ofd, "\t\t\t<Longitude>%lf</Longitude>\n", waypointp->longitude);
 
-       fprintf(ofd, "\t\t</Object>\n");
+       gbfprintf(ofd, "\t\t</Object>\n");
 
        legNum++;
 }
@@ -331,14 +331,14 @@ hsa_ndv_waypt_pr(const waypoint *waypointp)
 static void
 hsa_ndv_write(void)
 {
-       fprintf(ofd, "<?xml version=\"1.0\"?>\n");
-       fprintf(ofd, "<Export>\n");
-       fprintf(ofd, "\t<Route>\n");
-       fprintf(ofd, "\t\t<Version>1.0000000</Version>\n");
-       fprintf(ofd, "\t\t<Name>ROUTENAME</Name>\n");                   /*TODO: used filename? */
-       fprintf(ofd, "\t\t<LastModified>0</LastModified>\n");
+       gbfprintf(ofd, "<?xml version=\"1.0\"?>\n");
+       gbfprintf(ofd, "<Export>\n");
+       gbfprintf(ofd, "\t<Route>\n");
+       gbfprintf(ofd, "\t\t<Version>1.0000000</Version>\n");
+       gbfprintf(ofd, "\t\t<Name>ROUTENAME</Name>\n");                 /*TODO: used filename? */
+       gbfprintf(ofd, "\t\t<LastModified>0</LastModified>\n");
        waypt_disp_all(hsa_ndv_waypt_pr);
-       fprintf(ofd, "\t</Route>\n");
+       gbfprintf(ofd, "\t</Route>\n");
 
 //later we'll import past tracks and chart objects?
 //     fprintf(ofd, "\t<Chartwork>\n");
@@ -347,7 +347,7 @@ hsa_ndv_write(void)
 //     fprintf(ofd, "\t</Chartwork>\n");
 
 
-       fprintf(ofd, "</Export>\n");
+       gbfprintf(ofd, "</Export>\n");
 }
 
 ff_vecs_t HsaEndeavourNavigator_vecs = {
@@ -379,10 +379,10 @@ ff_vecs_t HsaEndeavourNavigator_vecs = {
 #define INVALID_TIME -1L
 #define SOUNDARRAY_CHAR 'S'
 
-static int readRecord( FILE* pFile, const char* pRecName, char *recData);
-static int readPositionRecord( FILE* pFile, double* lat, double* lng, long* timeStamp);
+static int readRecord(gbfile* pFile, const char* pRecName, char *recData);
+static int readPositionRecord(gbfile* pFile, double* lat, double* lng, long* timeStamp);
 
-static void readVersion4( FILE* pFile)
+static void readVersion4(gbfile* pFile)
 {
        while( TRUE )
        {
@@ -476,12 +476,12 @@ static void readVersion4( FILE* pFile)
                waypt_add(wpt_tmp);
        }
 
-       fclose(pFile);
+       gbfclose(pFile);
        return;
 }
 
 // read a record to a file
-static int readRecord( FILE* pFile, const char* pRecName, char *recData)
+static int readRecord(gbfile* pFile, const char* pRecName, char *recData)
 {
        // get the rec name
        int len;
@@ -490,7 +490,7 @@ static int readRecord( FILE* pFile, const char* pRecName, char *recData)
 
        for( len = 0; len < ED_REC_NAME_SIZE; len++)
        {
-               int c = fgetc( pFile);
+               int c = gbfgetc(pFile);
 
                // if we hit EOF failed
                if( c == EOF )
@@ -506,7 +506,7 @@ static int readRecord( FILE* pFile, const char* pRecName, char *recData)
        // get the rec data
        for( len = 0; TRUE; len++)
        {
-               int c = fgetc( pFile);
+               int c = gbfgetc( pFile);
 
                // if we hit EOF failed
                if( c == EOF )
@@ -526,7 +526,7 @@ static int readRecord( FILE* pFile, const char* pRecName, char *recData)
 }
 
 // read position
-static int readPositionRecord( FILE* pFile, double* lat, double* lng, 
+static int readPositionRecord(gbfile* pFile, double* lat, double* lng, 
                                                long* timeStamp)
 {
        // read the lat record
diff --git a/html.c b/html.c
index cadda30669f4b991f0e1bad03ebfed05ce83732d..ba8390d833fce8bbe97a036b35a026a0ea267c85 100644 (file)
--- a/html.c
+++ b/html.c
@@ -175,7 +175,7 @@ html_disp(const waypoint *wpt)
                        
                        logpart = xml_findfirst( curlog, "groundspeak:date" );
                        if ( logpart ) {
-                               logtime = xml_parse_time( logpart->cdata );
+                               logtime = xml_parse_time( logpart->cdata, NULL);
                                logtm = localtime( &logtime );
                                if ( logtm ) {
                                        fprintf( file_out, 
diff --git a/igc.c b/igc.c
index f5139755007e9c12a09fc10fbe3d57f9624344fd..f94a5a29f39e222f7b4cbfbe1d15a2a0f83a554b 100644 (file)
--- a/igc.c
+++ b/igc.c
@@ -305,7 +305,7 @@ static void data_read(void)
        case rec_fix:
            // Date must appear in file before the first fix record
            if (date < 1000000L) {
-               fatal(MYNAME ": bad date %ld\n", date);
+               fatal(MYNAME ": bad date %d\n", (int)date);
            }
            // Create a track for pressure altitude waypoints
            if (!pres_head) {
index 98b449bfac0b76e7e9b4ef8bb61a9ff818da4018..7a76b57bbe681d4c7f412131d04b070aea3c1440 100644 (file)
@@ -1,8 +1,8 @@
 /* 
 
-       Support for IGN Rando track files
+       Support for IGN Rando track files.
        
-       Copyright (C) 2005 Olaf Klein, o.b.klein@gpsbabel.org
+       Copyright (C) 2005,2006 Olaf Klein, o.b.klein@gpsbabel.org
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 
 #define MYNAME "IGNRando"
 
-static FILE *fout;
+static gbfile *fout;
 
 static route_head *track;
 static waypoint *wpt;
@@ -189,50 +189,18 @@ ignr_read(void)
 
 /* write support */
 
-static void
-ignr_fprintf(FILE *f, const char *fmt, ...)
-{
-       char buff[256];
-       char *temp = buff;
-       va_list args;
-       int i;
-       
-       va_start(args, fmt);
-       
-       i = vsnprintf(buff, sizeof(buff), fmt, args);
-       if (i >= (int) sizeof(buff))
-       {
-               temp = xmalloc(i + 1);
-               i = vsnprintf(temp, i + 1, fmt, args);
-       }
-       if (i < 0)
-       {
-               fatal(MYNAME ": error in vsnprintf.\n");        
-       }
-       else if (i > 0)
-       {
-               char eol = temp[i - 1];
-               if (eol == '\n') i--;
-               fwrite(temp, 1, i, f);
-               if (eol == '\n') fprintf(f, "\r\n");
-       }
-       
-       if (temp != buff) xfree(temp);
-       va_end(args);
-}
-
 /* callbacks registered in ignr_vecs */
 
 static void 
 ignr_rw_init(const char *fname)
 {
-       fout = xfopen(fname, "wb", MYNAME);
+       fout = gbfopen(fname, "w", MYNAME);
 }
 
 static void 
 ignr_rw_deinit(void)
 {
-       fclose(fout);
+       gbfclose(fout);
 }
 
 static void
@@ -242,11 +210,11 @@ ignr_write_track_hdr(const route_head *track)
 
        if (track_num != track_index) return;
        
-       ignr_fprintf(fout, "\t<INFORMATIONS>\n");
-       ignr_fprintf(fout, "\t\t<NB_ETAPES>%d</NB_ETAPES>\n", track->rte_waypt_ct);
+       gbfprintf(fout, "\t<INFORMATIONS>\n");
+       gbfprintf(fout, "\t\t<NB_ETAPES>%d</NB_ETAPES>\n", track->rte_waypt_ct);
        if (track->rte_desc != NULL)
-               ignr_fprintf(fout, "\t\t<DESCRIPTION>%s</DESCRIPTION>\n", track->rte_desc);
-       ignr_fprintf(fout, "\t</INFORMATIONS>\n");
+               gbfprintf(fout, "\t\t<DESCRIPTION>%s</DESCRIPTION>\n", track->rte_desc);
+       gbfprintf(fout, "\t</INFORMATIONS>\n");
 }
 
 static void
@@ -259,11 +227,11 @@ ignr_write_waypt(const waypoint *wpt)
 {
        if (track_num != track_index) return;
 
-       ignr_fprintf(fout, "\t<ETAPE>\n");
-       ignr_fprintf(fout, "\t\t<POSITION>%3.6f,%3.6f</POSITION>\n", wpt->latitude, wpt->longitude);
+       gbfprintf(fout, "\t<ETAPE>\n");
+       gbfprintf(fout, "\t\t<POSITION>%3.6f,%3.6f</POSITION>\n", wpt->latitude, wpt->longitude);
        if (wpt->altitude != unknown_alt)
-               ignr_fprintf(fout, "\t\t<ALTITUDE>%3.6f</ALTITUDE>\n", wpt->altitude);
-       ignr_fprintf(fout, "\t</ETAPE>\n");
+               gbfprintf(fout, "\t\t<ALTITUDE>%3.6f</ALTITUDE>\n", wpt->altitude);
+       gbfprintf(fout, "\t</ETAPE>\n");
 }
 
 static void 
@@ -287,20 +255,20 @@ ignr_write(void)
         now = current_time();
        tm = *localtime(&now);
        
-       ignr_fprintf(fout, "<?xml version=\"1.0\" encoding=\"windows-1252\"?>\n");
-       ignr_fprintf(fout, "<RANDONNEE>\n");
-       ignr_fprintf(fout, "\t<ENTETE>\n");
-       ignr_fprintf(fout, "\t\t<VERSION_XML>1.1</VERSION_XML>\n");
-       ignr_fprintf(fout, "\t\t<VERSION_BASE>IHA03AA</VERSION_BASE>\n");
+       gbfprintf(fout, "<?xml version=\"1.0\" encoding=\"windows-1252\"?>\n");
+       gbfprintf(fout, "<RANDONNEE>\n");
+       gbfprintf(fout, "\t<ENTETE>\n");
+       gbfprintf(fout, "\t\t<VERSION_XML>1.1</VERSION_XML>\n");
+       gbfprintf(fout, "\t\t<VERSION_BASE>IHA03AA</VERSION_BASE>\n");
        
        strftime(buff, sizeof(buff), "%d/%m/%Y", &tm);
-       ignr_fprintf(fout, "\t\t<DATE>%s</DATE>\n", buff);
+       gbfprintf(fout, "\t\t<DATE>%s</DATE>\n", buff);
        strftime(buff, sizeof(buff), "%H:%M:%S", &tm);
-       ignr_fprintf(fout, "\t\t<HEURE>%s</HEURE>\n", buff);
+       gbfprintf(fout, "\t\t<HEURE>%s</HEURE>\n", buff);
        
-       ignr_fprintf(fout, "\t</ENTETE>\n");
+       gbfprintf(fout, "\t</ENTETE>\n");
        track_disp_all(ignr_write_track_hdr, ignr_write_track_trl, ignr_write_waypt);
-       ignr_fprintf(fout, "</RANDONNEE>\n");
+       gbfprintf(fout, "</RANDONNEE>\n");
 }
 
 ff_vecs_t ignr_vecs = {
index 34b1caf1c111cfeb5deb40adbe0fce465a6ba6d0..17d3078eb5bbede6d28c147a7e535871258be910 100644 (file)
@@ -437,7 +437,10 @@ static char gpsdrivetrack[] =
 "IFIELD        LAT_DECIMAL, \"\", \"%10.6f\"\n"
 "IFIELD        LON_DECIMAL, \"\", \"%10.6f\"\n"
 "IFIELD        ALT_METERS, \"\", \"%10.0f\"\n"
-"IFIELD        GMT_TIME, \"\", \"%a %b %d %T %Y\"\n"
+"# Reports are that this format stores in local time, not GMT as \n"
+"# originally thought.\n"
+"# IFIELD      GMT_TIME, \"\", \"%a %b %d %H:%M:%S %Y\"\n"
+"IFIELD        LOCAL_TIME, \"\", \"%a %b %d %H:%M:%S %Y\"\n"
 ;
 static char gpsman[] = 
 "# gpsbabel XCSV style file\n"
@@ -475,6 +478,54 @@ static char gpsman[] =
 
 "# gpsman.c likes mkshort len = 8, whitespace = 0.\n"
 ;
+static char kompass_tk[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints\n"
+"# Author: Olaf Klein\n"
+"#   Date: 01/10/2007\n"
+"#\n"
+"# \n"
+"DESCRIPTION           Kompass (DAV) Track (.tk)\n"
+"DATATYPE              TRACK\n"
+"EXTENSION             wp\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              ,\"\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%.7f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%.7f\"\n"
+;
+static char kompass_wp[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints\n"
+"# Author: Olaf Klein\n"
+"#   Date: 01/10/2007\n"
+"#\n"
+"# \n"
+"DESCRIPTION           Kompass (DAV) Waypoints (.wp)\n"
+"DATATYPE              WAYPOINT\n"
+"EXTENSION             wp\n"
+"ENCODING              UTF-8\n"
+"FIELD_DELIMITER               SEMICOLON\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              ,\"\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%.7f\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%.7f\"\n"
+"IFIELD        ALT_METERS, \"\", \"%.0f\"\n"
+"IFIELD        LOCAL_TIME,\"\",\"%d.%m.%Y %H:%M:%S\"\n"
+"IFIELD        CONSTANT, \"Icons\\Wegpunkt grün.bmp\", \"%s\"\n"
+"IFIELD        IGNORE, \"\", \"%s\"\n"
+"IFIELD  CONSTANT, \"1\", \"%s\"                       # unknown\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+;
 static char ktf2[] = 
 "# gpsbabel XCSV style file\n"
 "#\n"
@@ -889,6 +940,8 @@ static char tabsep[] =
 "IFIELD  PATH_DISTANCE_KM, \"\", \"%f\"\n"
 "IFIELD  GEOCACHE_PLACER,\"\",\"%s\"\n"
 "IFIELD  YYYYMMDD_TIME,\"\",\"%ld\"\n"
+"IFIELD        GEOCACHE_HINT, \"\", \"%s\"\n"
+"IFIELD        GEOCACHE_LAST_FOUND, \"\", \"%d\"\n"
 ;
 static char xmap2006[] = 
 "# gpsbabel XCSV style file\n"
@@ -995,8 +1048,8 @@ static char xmapwpt[] =
 "IFIELD        IGNORE, \"\", \"%-.31s\"\n"
 "IFIELD        DESCRIPTION, \"\", \"%-.78s\"\n"
 ;
-style_vecs_t style_list[] = {{ "xmapwpt", xmapwpt } , { "xmap", xmap } , { "xmap2006", xmap2006 } , { "tabsep", tabsep } , { "sportsim", sportsim } , { "saplus", saplus } , { "s_and_t", s_and_t } , { "openoffice", openoffice } , { "nima", nima } , { "mxf", mxf } , { "mapconverter", mapconverter } , { "kwf2", kwf2 } , { "ktf2", ktf2 } , { "gpsman", gpsman } , { "gpsdrivetrack", gpsdrivetrack } , { "gpsdrive", gpsdrive } , { "geonet", geonet } , { "garmin_poi", garmin_poi } , { "garmin301", garmin301 } , { "fugawi", fugawi } , { "dna", dna } , { "custom", custom } , { "cup", cup } , { "csv", csv } , { "cambridge", cambridge } , { "arc", arc } ,  {0,0}};
-size_t nstyles = 26;
+style_vecs_t style_list[] = {{ "xmapwpt", xmapwpt } , { "xmap", xmap } , { "xmap2006", xmap2006 } , { "tabsep", tabsep } , { "sportsim", sportsim } , { "saplus", saplus } , { "s_and_t", s_and_t } , { "openoffice", openoffice } , { "nima", nima } , { "mxf", mxf } , { "mapconverter", mapconverter } , { "kwf2", kwf2 } , { "ktf2", ktf2 } , { "kompass_wp", kompass_wp } , { "kompass_tk", kompass_tk } , { "gpsman", gpsman } , { "gpsdrivetrack", gpsdrivetrack } , { "gpsdrive", gpsdrive } , { "geonet", geonet } , { "garmin_poi", garmin_poi } , { "garmin301", garmin301 } , { "fugawi", fugawi } , { "dna", dna } , { "custom", custom } , { "cup", cup } , { "csv", csv } , { "cambridge", cambridge } , { "arc", arc } ,  {0,0}};
+size_t nstyles = 28;
 #else /* CSVFMTS_ENABLED */
 style_vecs_t style_list[] = {{0,0}};
 size_t nstyles = 0;
diff --git a/jeeps/.cvsignore b/jeeps/.cvsignore
new file mode 100644 (file)
index 0000000..f3c7a7c
--- /dev/null
@@ -0,0 +1 @@
+Makefile
index 104f535c798fe7870c7d90bb37097819cd25901f..3190681fd418265bcaa3222b6372913b0d5047fe 100644 (file)
@@ -3467,6 +3467,9 @@ drain_run_cmd(gpsdevh *fd)
            break;
        }
     }
+
+    GPS_Packet_Del(&tra);
+    GPS_Packet_Del(&rec);
   return 0;
 }
 
@@ -3793,6 +3796,10 @@ int32 GPS_A301_Send(const char *port, GPS_PTrack *trk, int32 n)
                GPS_D301_Send(data,trk[i]);
                len = 21;
                break;
+           case pD304:
+               GPS_D304_Send(data,trk[i]);
+               len = 26;
+               break;
            default:
                GPS_Error("A301_Send: Unknown track protocol");
                return PROTOCOL_ERROR;
@@ -4192,6 +4199,36 @@ void GPS_D301_Send(UC *data, GPS_PTrack trk)
     return;
 }
 
+void GPS_D304_Send(UC *data, GPS_PTrack trk)
+{
+    UC *p;
+
+    p = data;
+    GPS_A300_Encode(p,trk);
+    p = data+12;
+    
+    GPS_Util_Put_Float(p,trk->alt);
+    p+=sizeof(float);
+    GPS_Util_Put_Float(p, (const float) 1.0e25);
+    p+=sizeof(float);
+
+    /* Not really clear if the members below makes sense to write or not */
+
+    *p = trk->heartrate;
+    p+=sizeof(char);
+
+    *p = trk->cadence;
+    p+=sizeof(char);
+
+    *p = trk->cadence > 0 ? trk->cadence : 0xff;
+    p+=sizeof(char);
+
+    *p = trk->tnew;
+
+    return;
+}
+
 
 
 /* @func GPS_D310_Send **************************************************
@@ -5967,18 +6004,25 @@ int32 GPS_A800_Get(gpsdevh **fd, GPS_PPvt_Data *packet)
     GPS_PPacket tra;
     GPS_PPacket rec;
 
-
     if(!(tra = GPS_Packet_New()) || !(rec = GPS_Packet_New()))
        return MEMORY_ERROR;
     
     
-    if(!GPS_Packet_Read(*fd, &rec))
+    if(!GPS_Packet_Read(*fd, &rec)) {
+       GPS_Packet_Del(&rec);
+       GPS_Packet_Del(&tra);
        return gps_errno;
+    }
     
-    if(!GPS_Send_Ack(*fd, &tra, &rec))
+    if(!GPS_Send_Ack(*fd, &tra, &rec)) {
+       GPS_Packet_Del(&rec);
+       GPS_Packet_Del(&tra);
        return gps_errno;
+    }
 
     if (rec->type != LINK_ID[gps_link_type].Pid_Pvt_Data) {
+       GPS_Packet_Del(&rec);
+       GPS_Packet_Del(&tra);
        return 0;
     }
     
@@ -5989,6 +6033,8 @@ int32 GPS_A800_Get(gpsdevh **fd, GPS_PPvt_Data *packet)
        break;
     default:
        GPS_Error("A800_GET: Unknown pvt protocol");
+       GPS_Packet_Del(&rec);
+       GPS_Packet_Del(&tra);
        return PROTOCOL_ERROR;
     }
 
index 2d9ead9c1172112dc01702e9a86db449fa5f3e27..ee64168475ea5949fe44224d80d586eb14a439bd 100644 (file)
@@ -34,6 +34,7 @@ void   GPS_D310_Get(GPS_PTrack *trk, UC *s);
 void   GPS_D311_Get(GPS_PTrack *trk, UC *s);
 void   GPS_D300_Send(UC *data, GPS_PTrack trk);
 void   GPS_D301_Send(UC *data, GPS_PTrack trk);
+void   GPS_D304_Send(UC *data, GPS_PTrack trk);
 void   GPS_D310_Send(UC *data, GPS_PTrack trk, int32 *len);
 
 int32  GPS_A400_Get(const char *port, GPS_PWay **way);
index 225f35a474897d0f79cfc75161f699aed71c5a29..1847134462feea66dae84bc180ff34f7c3284c45 100644 (file)
@@ -104,6 +104,7 @@ gusb_teardown(gpsdevh *dh)
        if (udev) {
                usb_release_interface(udev, 0);
                usb_close(udev);
+               xfree(dh);
                udev = NULL;
        }
        return 0; 
index 78896bfe839c0178e890f08f36537b52bfd008bd..4e90f0939ed1eba74c66293653fd62adfb79da73 100644 (file)
@@ -305,6 +305,7 @@ void GPS_Serial_Error(const char *mb, ...)
        s = msg + b;
        *s++ = ':';
        *s++ = ' ';
+       *s++ = '\0';
 
 //     FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, 0, 
 //                     GetLastError(), 0, s, sizeof(msg) - b - 2, 0 );
index b42d7091a25e54ad2f3111d1242c80bb9dabac32..060bab4222c86b174ed21d37d916443e4820c7c6 100644 (file)
@@ -24,7 +24,7 @@
 #include "../defs.h"
 #if !HAVE_LIBUSB 
 
-const char no_usb[] = "USB suport is not available in this build.\n";
+const char no_usb[] = "USB support is not available in this build.\n";
 
 int
 gusb_init(const char *portname)
index 1fe48959fc6a4bd929c49b8518c229b51fe70858..fd7a5cec5827463128f23b3f8d6749e274643233 100644 (file)
@@ -161,6 +161,11 @@ HANDLE * garmin_usb_start(HDEVINFO* hdevinfo, SP_DEVICE_INTERFACE_DATA *infodata
        usb_handle = CreateFile(pdd->DevicePath, GENERIC_READ|GENERIC_WRITE, 
                        0, NULL, OPEN_EXISTING, 0, NULL );
        if (usb_handle == INVALID_HANDLE_VALUE) {
+               if (GetLastError() == ERROR_ACCESS_DENIED) {
+                       warning(
+"Exclusive access is denied.  It's likely that something else such as\n"
+"Nroute, Spanner, Google Earth, or GPSGate already has control of the device\n");
+               }
                GPS_Serial_Error("(usb) CreateFile on '%s' failed", pdd->DevicePath);
                return NULL;
        }
diff --git a/kml.c b/kml.c
index aad6876789902801eb9da831136fda7ba9aa2551..c544a041f6e0f814ae8da556d3ebdf801c8d4710 100644 (file)
--- a/kml.c
+++ b/kml.c
@@ -1,7 +1,7 @@
 /* 
        Support for Google Earth & Keyhole "kml" format.
 
-       Copyright (C) 2005, 2006 Robert Lipe, robertlipe@usa.net
+       Copyright (C) 2005, 2006, 2007 Robert Lipe, robertlipe@usa.net
        Updates by Andrew Kirmse, akirmse at google.com
 
        This program is free software; you can redistribute it and/or modify
 #include "defs.h"
 #include "xmlgeneric.h"
 
+#ifdef __WIN32__
+# include <windows.h>
+#endif
+
 // options
 static char *opt_deficon = NULL;
 static char *opt_export_lines = NULL;
@@ -288,15 +292,8 @@ kml_wr_deinit(void)
 
        if (posnfilenametmp) {
 #if __WIN32__
-               /*
-                * This is gross.
-                * Windows does not offer an atomic rename; we must
-                * explictly remove the destination here which exposes
-                * a window where a polled reader of this file could find
-                * the file to be missing.  Windows readers will simply
-                * have to retry on this case.
-                */
-               unlink(posnfilename);
+               MoveFileEx(posnfilenametmp, posnfilename,
+               MOVEFILE_REPLACE_EXISTING);
 #endif
                rename(posnfilenametmp, posnfilename);
                xfree(posnfilenametmp);
@@ -394,7 +391,7 @@ static void kml_output_timestamp(const waypoint *waypointp)
 {
        char time_string[64];
        if (waypointp->creation_time) {
-               xml_fill_in_time(time_string, waypointp->creation_time, XML_LONG_TIME);
+               xml_fill_in_time(time_string, waypointp->creation_time, waypointp->microseconds, XML_LONG_TIME);
                if (time_string[0]) {
                        kml_write_xml(0, "<TimeStamp><when>%s</when></TimeStamp>\n", 
                                time_string);
@@ -471,9 +468,9 @@ void kml_output_trkdescription(const route_head *header, computed_trkdata *td)
        if (td->start && td->end) {
                char time_string[64];
                kml_write_xml(1, "<TimeSpan>\n");
-               xml_fill_in_time(time_string, td->start, XML_LONG_TIME);
+               xml_fill_in_time(time_string, td->start, 0, XML_LONG_TIME);
                kml_write_xml(0, "<begin>%s</begin>\n", time_string);
-               xml_fill_in_time(time_string, td->end, XML_LONG_TIME);
+               xml_fill_in_time(time_string, td->end, 0, XML_LONG_TIME);
                kml_write_xml(0, "<end>%s</end>\n", time_string);
                kml_write_xml(-1, "</TimeSpan>\n");
        }
@@ -679,8 +676,13 @@ static void kml_waypt_pr(const waypoint *waypointp)
                else
                        fputs(odesc, ofd);
 
-               if (!global_opts.no_smart_icons && 
-                    waypointp->gc_data.diff && waypointp->gc_data.terr) {
+               /* It's tempting to conditionalize this on smart_names, but
+                * KML is so robust that it makes sense to just always do
+                * this for geocaches.  (Plus the convenience of being able
+                * to do a drag-n-drop into Earth without extra option is a 
+                * win.)
+                */
+               if (waypointp->gc_data.diff && waypointp->gc_data.terr) {
                        if (waypointp->gc_data.placer) {
                                char *p = xml_entitize(waypointp->gc_data.placer);
                                fprintf(ofd, "<![CDATA[<i> by %s</i>]]>", p);
@@ -716,7 +718,7 @@ static void kml_waypt_pr(const waypoint *waypointp)
                kml_write_xml(-1, "</IconStyle>\n");
                kml_write_xml(-1, "</Style>\n");
 
-       } else if (!global_opts.no_smart_icons && waypointp->gc_data.diff && waypointp->gc_data.terr) {
+       } else if (waypointp->gc_data.diff && waypointp->gc_data.terr) {
                char *is = kml_lookup_gc_icon(waypointp);
                kml_write_xml(1, "<Style>\n");
                kml_write_xml(1, "<IconStyle>\n");
@@ -805,8 +807,12 @@ void kml_write(void)
        trackdata = (!! strcmp("0", opt_trackdata));
 
        kml_write_xml(0,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-       kml_write_xml(1,"<kml xmlns=\"http://earth.google.com/kml/2.1\">\n");
-       kml_write_xml(1,"<Document xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n");
+       kml_write_xml(1,"<kml xmlns=\"http://earth.google.com/kml/2.1\"\n"
+               "\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+               "\txsi:schemaLocation=\"http://earth.google.com/kml/2.1 \n"
+               "\thttp://code.google.com/apis/kml/schema/kml21.xsd\">\n"
+       );
+       kml_write_xml(1,"<Document>\n");
 
        now = current_time();
        strftime(import_time, sizeof(import_time), "%c", localtime(&now));
index 06c553acab09592c29de6cfe734b73ca4797b3ed..49907ebb97a90d9b3dee28999129547bcf342aff 100644 (file)
@@ -363,10 +363,10 @@ lowranceusr_parse_waypt(waypoint *wpt_tmp)
 
     if (global_opts.debug_level >= 2)
        {
-               printf("LOWRANCE parse_waypt: creation time %ld\n", 
-                       wpt_tmp->creation_time);
-               printf("LOWRANCE parse_waypt: base_time %ld\n", base_time_secs);
-               printf("LOWRANCE parse_waypt: waypt time %ld\n", waypt_time);
+               printf("LOWRANCE parse_waypt: creation time %d\n", 
+                       (int)wpt_tmp->creation_time);
+               printf("LOWRANCE parse_waypt: base_time %d\n", (int)base_time_secs);
+               printf("LOWRANCE parse_waypt: waypt time %d\n", (int)waypt_time);
        }
 
        /* Symbol ID */
@@ -699,10 +699,10 @@ lowranceusr_waypt_disp(const waypoint *wpt)
     if (global_opts.debug_level >= 2)
        {
                time_t wpt_time = Time;
-               printf("LOWRANCE waypt_disp: base_time : %ld\n",base_time_secs);
-               printf("LOWRANCE waypt_disp: creation time : %ld\n",wpt->creation_time);
-               printf("LOWRANCE waypt_disp: waypt time : %ld\n",wpt_time);
-               printf("LOWRANCE waypt_disp: waypt time (local): %s\n",ctime(&wpt_time));
+               printf("LOWRANCE waypt_disp: base_time : %d\n", (int)base_time_secs);
+               printf("LOWRANCE waypt_disp: creation time : %d\n", (int)wpt->creation_time);
+               printf("LOWRANCE waypt_disp: waypt time : %d\n", (int)wpt_time);
+               printf("LOWRANCE waypt_disp: waypt time (local): %s\n", ctime(&wpt_time));
        }
 
        my_fwrite4(&Time, file_out);
index dc9af496157830c39b9c1a4afd2cc902d5af405d..79a5e255fba50e8089ab5da564dbd46671cb14ae 100644 (file)
--- a/magnav.c
+++ b/magnav.c
@@ -165,7 +165,7 @@ my_writewpt(const waypoint *wpt)
        be_write16( &rec->crt_hour, tm->tm_hour );
        be_write16( &rec->crt_mday, tm->tm_mday );
        be_write16( &rec->crt_mon, tm->tm_mon + 1 );
-       be_write16( &rec->crt_year, tm->tm_mon + 1900 );
+       be_write16( &rec->crt_year, tm->tm_year + 1900 );
        
         be_write16( &rec->unknown, 0);
        
@@ -174,7 +174,7 @@ my_writewpt(const waypoint *wpt)
        be_write16( &rec->xx_hour, tm->tm_hour );
        be_write16( &rec->xx_mday, tm->tm_mday );
        be_write16( &rec->xx_mon, tm->tm_mon + 1 );
-       be_write16( &rec->xx_year, tm->tm_mon + 1900 );
+       be_write16( &rec->xx_year, tm->tm_year + 1900 );
        
         be_write16( &rec->unknown2, 0);
        
index e48a9d56077b5b991de49e7365629f428b074660..ee763d4880c39f1ac5a1f7fd43293f322401a48e 100644 (file)
@@ -425,6 +425,12 @@ retry:
                }
        }
 
+       /* If column zero isn't a dollar sign, it's not for us */
+       if (ibuf[0] != '$') {
+               fatal(MYNAME ": line doesn't start with '$'.\n");
+       }
+
+
        isz = strlen(ibuf);
 
        if (isz < 5) {
@@ -489,15 +495,10 @@ retry:
                        /* These tracks don't have names, so derive one
                         * from input filename.
                         */
-                       const char *s = strrchr(curfname, GB_PATHSEP);
                        char *e;
-                       trk_head = route_head_alloc();
+                       const char *s = get_filename(curfname);
 
-                       if (s) {
-                               s++; /* Skip path delim */
-                       }  else {
-                               s = curfname;/* use name intact */
-                       }
+                       trk_head = route_head_alloc();
 
                        /* Whack trailing extension if present. */
                        trk_head->rte_name = xstrdup(s);
@@ -644,8 +645,8 @@ arglist_t mag_sargs[] = {
        {"deficon", &deficon, "Default icon name", NULL, ARGTYPE_STRING,
                ARG_NOMINMAX },
        {"maxcmts", &cmts, "Max number of comments to write (maxcmts=200)", 
-               NULL, ARGTYPE_INT, ARG_NOMINMAX },
-       {"baud", &bs, "Numeric value of bitrate (baud=4800)", NULL,
+               "200", ARGTYPE_INT, ARG_NOMINMAX },
+       {"baud", &bs, "Numeric value of bitrate (baud=4800)", "4800",
                ARGTYPE_INT, ARG_NOMINMAX },
        {"noack", &noack, "Suppress use of handshaking in name of speed",
                NULL, ARGTYPE_BOOL, ARG_NOMINMAX},
@@ -740,12 +741,7 @@ mag_rd_init_common(const char *portname)
         * make a copy of it, then lop off the file extension
         */
 
-       curfname = strrchr(portname, GB_PATHSEP);
-       if (curfname) {
-               curfname++;  /* skip over path delimiter */
-       } else {
-               curfname = portname;
-       }
+       curfname = get_filename(portname);
 
        /*
         * I'd rather not derive behaviour from filenames but since
@@ -927,7 +923,7 @@ mag_trkparse(char *trkmsg)
        tm.tm_mday = dmy % 100; 
 
        waypt->creation_time = mkgmtime(&tm);
-       waypt->centiseconds = fracsecs;
+       waypt->microseconds = CENTI_TO_MICRO(fracsecs);
 
        if (latdir == 'S') latdeg = -latdeg;
        waypt->latitude = ddmm2degrees(latdeg);
@@ -969,11 +965,20 @@ mag_rteparse(char *rtemsg)
 
        /* Explorist has a route name here */
        if (explorist) {
-               char rten[1024];
-               int n2;
-               sscanf(rtemsg + n, ",%[^,]%n", rten, &n2);
-               n += n2;
-               rte_name = xstrdup(rten);
+               char *ca, *ce;
+               
+               ca = rtemsg + n;
+               is_fatal(*ca++ != ',', MYNAME ": Incorrectly formatted route line '%s'", rtemsg);
+
+               ce = strchr(ca, ',');
+               is_fatal(ce == NULL, MYNAME ": Incorrectly formatted route line '%s'", rtemsg);
+
+               if (ca == ce)
+                       xasprintf(&rte_name, "Route%d", rtenum);
+               else
+                       rte_name = xstrndup(ca, ce - ca);
+               
+               n += ((ce - ca) + 1);
        }
 
 #endif
@@ -1249,7 +1254,7 @@ mag_waypt_pr(const waypoint *waypointp)
        odesc = isrc ? isrc : "";
        owpt = mag_cleanse(owpt);
 
-       if (!global_opts.no_smart_icons &&
+       if (global_opts.smart_icons &&
            waypointp->gc_data.diff && waypointp->gc_data.terr) {
                sprintf(ofmtdesc, "%d/%d %s", waypointp->gc_data.diff, 
                        waypointp->gc_data.terr, odesc);
@@ -1314,7 +1319,7 @@ void mag_track_disp(const waypoint *waypointp)
                                   tm->tm_sec;
                        date = tm->tm_mday * 10000 + tm->tm_mon * 100 + 
                                   tm->tm_year;
-                       fracsec = waypointp->centiseconds;
+                       fracsec = MICRO_TO_CENTI(waypointp->microseconds);
                }
        }
         if (!tm) {
diff --git a/main.c b/main.c
index 9fcfc708160029913c3937986ca112b65e51aedd..6c1aabfb39efd741f8ea4948439126dd17208e9c 100644 (file)
--- a/main.c
+++ b/main.c
@@ -176,6 +176,43 @@ spec_usage( const char *vec ) {
        printf( "\n" );
 }
 
+static void
+print_extended_info(void)
+{
+       printf(
+
+#if !ZLIB_INHIBITED    /* Note polarity inverted here */
+       "ZLIB_ENABLED "
+#endif
+
+#if FILTERS_ENABLED
+       "FILTERS_ENABLED "
+#endif
+
+#if CSVFMTS_ENABLED
+       "CSVFMTS_ENABLED "
+#endif
+
+#if PDBFMTS_ENABLED 
+       "PDBFMTS_ENABLED "
+#endif
+
+#if SHAPELIB_ENABLED 
+       "SHAPELIB_ENABLED "
+#endif
+#if HAVE_LIBEXPAT
+       "HAVE_LIBEXPAT "
+#if XML_UNICODE
+       "XML_UNICODE "
+#endif
+#endif
+
+#if defined CET_WANTED         
+       "CET_ENABLED "
+#endif
+       "\n");
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -213,6 +250,7 @@ main(int argc, char *argv[])
        }
        debug_mem_output( "\n" );
 #endif
+
        if (gpsbabel_time != 0) {       /* within testo ? */
                global_opts.inifile = inifile_init(NULL, MYNAME);
        }
@@ -241,8 +279,11 @@ main(int argc, char *argv[])
                }
                
                if (argv[argn][1] == 'V' ) {
-                        printf("\nGPSBabel Version %s\n\n", gpsbabel_version );
-                        exit(0);
+                       printf("\nGPSBabel Version %s\n\n", gpsbabel_version );
+                       if (argv[argn][2] == 'V') {
+                               print_extended_info();
+                       }
+                       exit(0);
                }
 
                if (argv[argn][1] == '?' || argv[argn][1] == 'h') {
@@ -385,6 +426,12 @@ main(int argc, char *argv[])
                                global_opts.masked_objective |= POSNDATAMASK;
                                break;
                        case 'N':
+#if 0
+/* This option is silently eaten for compatibilty.  -N is now the
+ * default.  If you want the old behaviour, -S allows you to individually
+ * turn them on.  The -N option will be removed in 2008.
+ */ 
+
                                switch(argv[argn][2]) {
                                        case 'i':
                                                global_opts.no_smart_icons = 1;
@@ -397,7 +444,22 @@ main(int argc, char *argv[])
                                                global_opts.no_smart_icons = 1;
                                                break;
                                }
+#endif
                                
+                               break;
+                       case 'S':
+                               switch(argv[argn][2]) {
+                                       case 'i':
+                                               global_opts.smart_icons = 1;
+                                               break;  
+                                       case 'n': 
+                                               global_opts.smart_names = 1;
+                                               break;
+                                       default:
+                                               global_opts.smart_icons = 1;
+                                               global_opts.smart_names = 1;
+                                               break;
+                               }
                                break;
                        case 'x':
                                optarg = argv[argn][2]
@@ -565,8 +627,10 @@ main(int argc, char *argv[])
 
                while (1) {
                        posn_status status;
-                       waypoint *wpt = ivecs->position_ops.rd_position(&status);
+                       waypoint *wpt;
+
                        status.request_terminate = 0;
+                       wpt = ivecs->position_ops.rd_position(&status);
 
                        if (status.request_terminate) {
                                if (wpt) {
index 90cb6aa63ff16047054e275eefb30fe927a2d143..c04c9ab50a2a26fee08b42763e30fb340041905e 100644 (file)
--- a/mapsend.c
+++ b/mapsend.c
@@ -25,8 +25,8 @@
 #include "mapsend.h"
 #include "magellan.h"
 
-static FILE *mapsend_file_in;
-static FILE *mapsend_file_out;
+static gbfile *mapsend_file_in;
+static gbfile *mapsend_file_out;
 static short_handle mkshort_handle;
 static short_handle wpt_handle;
 
@@ -71,62 +71,20 @@ static void
 mapsend_rd_init(const char *fname)
 {
        mapsend_init_opts(1);
-       mapsend_file_in = xfopen(fname, "rb", MYNAME);
+       mapsend_file_in = gbfopen_le(fname, "rb", MYNAME);
 }
 
 static void
 mapsend_rd_deinit(void)
 {
-       fclose(mapsend_file_in);
-}
-
-static 
-void 
-my_fread8(void *ptr, FILE *stream)
-{
-       unsigned char cbuf[8];
-       size_t rv;
-
-       rv = fread(cbuf, 8, 1, stream);
-       le_read64(ptr, cbuf);
-       
-}
-
-static 
-void
-my_fwrite8(void *ptr, FILE *stream)
-{
-       unsigned char cbuf[8];
-
-       le_read64(cbuf, ptr);
-       fwrite(cbuf, 8, 1, stream);
-}
-
-static 
-void 
-my_fread4(void *ptr, FILE *stream)
-{
-       unsigned int *iptr = ptr;
-       unsigned char cbuf[4];
-       size_t rv;
-
-       rv = fread(cbuf, 4, 1, stream);
-       *iptr = le_read32(cbuf);
-}
-
-static 
-size_t
-my_fwrite4(void *ptr, FILE *stream)
-{
-       int i = le_read32(ptr);
-       return fwrite(&i, 4, 1, stream);
+       gbfclose(mapsend_file_in);
 }
 
 static void
 mapsend_wr_init(const char *fname)
 {
        mapsend_init_opts(0);
-       mapsend_file_out = xfopen(fname, "wb", MYNAME);
+       mapsend_file_out = gbfopen(fname, "wb", MYNAME);
        mkshort_handle = mkshort_new_handle();
 
        wpt_handle = mkshort_new_handle();
@@ -139,7 +97,7 @@ mapsend_wr_init(const char *fname)
 static void
 mapsend_wr_deinit(void)
 {
-       fclose(mapsend_file_out);
+       gbfclose(mapsend_file_out);
        mkshort_del_handle(&mkshort_handle);
        mkshort_del_handle(&wpt_handle);
 }
@@ -148,50 +106,28 @@ static void
 mapsend_wpt_read(void)
 {
        char tbuf[256];
-       char name[257];
-       char comment[257];
-       char *p;
        int wpt_count, rte_count, rte_num;
-       unsigned char scount;
        int wpt_number;
        char wpt_icon;
        char wpt_status;
-       double wpt_alt;
-       double wpt_long;
-       double wpt_lat;
        waypoint *wpt_tmp;
        route_head *rte_head;
 
-       my_fread4(&wpt_count, mapsend_file_in);
+       wpt_count = gbfgetint32(mapsend_file_in);
        
        while (wpt_count--) {
                wpt_tmp = waypt_new();
 
-               if (fread(&scount, sizeof(scount), 1, mapsend_file_in) < 1) {
-                       fatal(MYNAME ": out of data reading %d waypoints\n",
-                                       wpt_count);
-               }
-               fread(tbuf, scount, 1, mapsend_file_in);
-               p = strncpy(name, tbuf, scount);
-               p[scount] = '\0';
-
-               fread(&scount, sizeof(scount), 1, mapsend_file_in);
-               fread(tbuf, scount, 1, mapsend_file_in);
-               p = strncpy(comment, tbuf, scount);
-               p[scount] = '\0';
-
-               my_fread4(&wpt_number, mapsend_file_in);
-               fread(&wpt_icon, sizeof(wpt_icon), 1, mapsend_file_in);
-               fread(&wpt_status, sizeof(wpt_status), 1, mapsend_file_in);
-               my_fread8(&wpt_alt, mapsend_file_in);
-               my_fread8(&wpt_long, mapsend_file_in);
-               my_fread8(&wpt_lat, mapsend_file_in);
-
-               wpt_tmp->shortname = xstrdup(name);
-               wpt_tmp->description = xstrdup(comment);
-               wpt_tmp->altitude = wpt_alt;
-               wpt_tmp->latitude = -wpt_lat;
-               wpt_tmp->longitude = wpt_long;
+               wpt_tmp->shortname = gbfgetpstr(mapsend_file_in);
+               wpt_tmp->description = gbfgetpstr(mapsend_file_in);
+
+               wpt_number = gbfgetint32(mapsend_file_in);
+               wpt_icon = gbfgetc(mapsend_file_in);
+               wpt_status = gbfgetc(mapsend_file_in);
+
+               wpt_tmp->altitude = gbfgetdbl(mapsend_file_in);
+               wpt_tmp->longitude = gbfgetdbl(mapsend_file_in);
+               wpt_tmp->latitude = -gbfgetdbl(mapsend_file_in);
 
                if (wpt_icon < 26)
                        sprintf(tbuf, "%c", wpt_icon + 'a');
@@ -203,43 +139,34 @@ mapsend_wpt_read(void)
        }
        
        /* now read the routes... */
-       my_fread4(&rte_count, mapsend_file_in);
+       rte_count = gbfgetint32(mapsend_file_in);
        
        while (rte_count--) {
                rte_head = route_head_alloc();
                route_add_head(rte_head);
                
                /* route name */
-               fread(&scount, sizeof(scount), 1, mapsend_file_in);
-               fread(tbuf, scount, 1, mapsend_file_in);
-               tbuf[scount] = '\0';
-               rte_head->rte_name = xstrdup(tbuf);
+               rte_head->rte_name = gbfgetpstr(mapsend_file_in);
                
                /* route # */
-               my_fread4(&rte_num, mapsend_file_in);
+               rte_num = gbfgetint32(mapsend_file_in);
                rte_head->rte_num = rte_num;
                
                /* points this route */
-               my_fread4(&wpt_count, mapsend_file_in);
+               wpt_count = gbfgetint32(mapsend_file_in);
                
                while (wpt_count--) {
                        wpt_tmp = waypt_new();
 
                        /* waypoint name */
-                       fread(&scount, sizeof(scount), 1, mapsend_file_in);
-                       fread(tbuf, scount, 1, mapsend_file_in);
-                       tbuf[scount] = '\0';
-
-                       wpt_tmp->shortname = xstrdup(tbuf);
+                       wpt_tmp->shortname = gbfgetpstr(mapsend_file_in);
                        
                        /* waypoint # */
-                       my_fread4(&wpt_number, mapsend_file_in);
-                       my_fread8(&wpt_long, mapsend_file_in);
-                       my_fread8(&wpt_lat, mapsend_file_in);
-                       fread(&wpt_icon, sizeof(wpt_icon), 1, mapsend_file_in);
+                       wpt_number = gbfgetint32(mapsend_file_in);
+                       wpt_tmp->longitude = gbfgetdbl(mapsend_file_in);
+                       wpt_tmp->latitude = -gbfgetdbl(mapsend_file_in);
 
-                       wpt_tmp->longitude = wpt_long;
-                       wpt_tmp->latitude = -wpt_lat;
+                       gbfread(&wpt_icon, 1, sizeof(wpt_icon), mapsend_file_in);
 
                        if (wpt_icon < 26)
                                sprintf(tbuf, "%c", wpt_icon + 'a');
@@ -255,56 +182,40 @@ mapsend_wpt_read(void)
 static void
 mapsend_track_read(void)
 {
-       char *trk_name;
-       unsigned char scount;
        unsigned int trk_count;
-       double wpt_long;
-       double wpt_lat;
-       double wpt_alt;
-       int i = 0;
-       float f = 0;
-       int time;
        int valid;
        unsigned char centisecs;
        route_head *track_head;
        waypoint *wpt_tmp;
 
-       fread(&scount, sizeof(scount), 1, mapsend_file_in);
-       trk_name = xmalloc(scount + 1);
-       fread(trk_name, scount, 1, mapsend_file_in);
-       trk_name[scount] = '\0';
-       my_fread4(&trk_count, mapsend_file_in);
-
        track_head = route_head_alloc();
-       track_head->rte_name = trk_name;
+       track_head->rte_name = gbfgetpstr(mapsend_file_in);
        track_add_head(track_head);
 
+       trk_count = gbfgetuint32(mapsend_file_in);
+
        while (trk_count--) {
-               my_fread8(&wpt_long, mapsend_file_in);
-               my_fread8(&wpt_lat, mapsend_file_in);
+               wpt_tmp = waypt_new();
+               
+               wpt_tmp->longitude = gbfgetdbl(mapsend_file_in);
+               wpt_tmp->latitude = -gbfgetdbl(mapsend_file_in);
+               
                if (mapsend_infile_version < 36) { /* < version 4.0 */
-                       my_fread4(&i, mapsend_file_in);
-                       wpt_alt = i;
+                       wpt_tmp->altitude = gbfgetint32(mapsend_file_in);
                } else {
-                       my_fread4(&f, mapsend_file_in);
-                       wpt_alt = f;
+                       wpt_tmp->altitude = gbfgetflt(mapsend_file_in);
                }
-               my_fread4(&time, mapsend_file_in);
-               my_fread4(&valid, mapsend_file_in);
+               wpt_tmp->creation_time = gbfgetint32(mapsend_file_in);
+               valid = gbfgetint32(mapsend_file_in);
 
                /* centiseconds only in >= version 3.0 */
                if (mapsend_infile_version >= 34) {
-                       fread(&centisecs, 1, 1, mapsend_file_in);
+                       gbfread(&centisecs, 1, 1, mapsend_file_in);
                } else {
                        centisecs = 0;
                }
-
-               wpt_tmp = waypt_new();
-               wpt_tmp->latitude = -wpt_lat;
-               wpt_tmp->longitude = wpt_long;
-               wpt_tmp->creation_time = time;
-               wpt_tmp->centiseconds = centisecs;
-               wpt_tmp->altitude = wpt_alt;
+               wpt_tmp->microseconds = CENTI_TO_MICRO(centisecs);
+               
                track_add_wpt(track_head, wpt_tmp);
        }
 }
@@ -313,7 +224,7 @@ static void
 mapsend_read(void)
 {
        mapsend_hdr hdr;
-       int type;
+       int type, len;
        char buf[3];
 
        /*
@@ -321,7 +232,9 @@ mapsend_read(void)
         * strings, each member has to be read in one at a time.  Grrr.
         */
 
-       fread(&hdr, sizeof(hdr), 1, mapsend_file_in);
+       len = gbfread(&hdr, 1, sizeof(hdr), mapsend_file_in);
+       is_fatal(len < sizeof(hdr), MYNAME ": No mapsend or empty file!");
+       
        type = le_read16(&hdr.ms_type);
        strncpy(buf, hdr.ms_version, 2);
        buf[2] = '\0';
@@ -348,11 +261,8 @@ mapsend_read(void)
 static void
 mapsend_waypt_pr(const waypoint *waypointp)
 {
-       int n;
        unsigned char c;
        double falt;
-       double flong;
-       double flat;
        static int cnt = 0;
        const char *iconp = NULL;
        const char *sn = global_opts.synthesize_shortnames ? 
@@ -377,11 +287,8 @@ mapsend_waypt_pr(const waypoint *waypointp)
 
        
        tmp = mkshort(wpt_handle, sn);
-       c = tmp ? strlen(tmp) : 0;
-       fwrite(&c, 1, 1, mapsend_file_out);
-       fwrite(tmp, c, 1, mapsend_file_out);
-       if (tmp)
-               xfree(tmp);
+       gbfputpstr(tmp, mapsend_file_out);
+       if (tmp) xfree(tmp);
 
        tmp = waypointp->description;
        if (tmp)
@@ -390,12 +297,11 @@ mapsend_waypt_pr(const waypoint *waypointp)
                c = 0;
 
        if (c > 30) c = 30;
-       fwrite(&c, 1, 1, mapsend_file_out);
-       fwrite(tmp, c, 1, mapsend_file_out);
+       gbfputc(c, mapsend_file_out);
+       gbfwrite(tmp, c, 1, mapsend_file_out);
 
        /* #, icon, status */
-       n = ++cnt;
-       my_fwrite4(&n, mapsend_file_out);
+       gbfputint32(++cnt, mapsend_file_out);
 
        if (waypointp->icon_descr) {
                iconp = mag_find_token_from_descr(waypointp->icon_descr);
@@ -416,26 +322,21 @@ mapsend_waypt_pr(const waypoint *waypointp)
                }
        }
 
-       fwrite(&c, 1, 1, mapsend_file_out);
-       c = 1;
-       fwrite(&c, 1, 1, mapsend_file_out);
+       gbfwrite(&c, 1, 1, mapsend_file_out);
+       gbfputc(1, mapsend_file_out);
 
        falt = waypointp->altitude;
        if (falt == unknown_alt)
                falt = 0;
-       my_fwrite8(&falt, mapsend_file_out);
+       gbfputdbl(falt, mapsend_file_out);
 
-       flong = waypointp->longitude;
-       my_fwrite8(&flong, mapsend_file_out);
-       flat = -waypointp->latitude;
-       my_fwrite8(&flat, mapsend_file_out);
+       gbfputdbl(waypointp->longitude, mapsend_file_out);
+       gbfputdbl(-waypointp->latitude, mapsend_file_out);
 }
 
 static void 
 mapsend_route_hdr(const route_head *rte)
 {
-       int i;
-       unsigned char c;
        char * rname;
        
        /* route name -- mapsend really seems to want something here.. */
@@ -443,22 +344,15 @@ mapsend_route_hdr(const route_head *rte)
                rname = xstrdup("Route");
        else
                rname = xstrdup(rte->rte_name);
-
-       c = strlen(rname);
-       
-       fwrite(&c, 1, 1, mapsend_file_out);
-       fwrite(rname, c, 1, mapsend_file_out);
+       gbfputpstr(rname, mapsend_file_out);
 
        xfree(rname);
        
        /* route # */
-       i = rte->rte_num;
-       my_fwrite4(&i, mapsend_file_out);
+       gbfputint32(rte->rte_num, mapsend_file_out);
        
-       i = rte->rte_waypt_ct;
-
        /* # of waypoints to follow... */
-       my_fwrite4(&i, mapsend_file_out);
+       gbfputint32(rte->rte_waypt_ct, mapsend_file_out);
 }
 
 static void 
@@ -472,23 +366,19 @@ mapsend_route_disp(const waypoint *waypointp)
 {
        unsigned char c;
        const char *iconp;
-       double dbl;
 
        route_wp_count++;
        
        /* waypoint name */
        c = waypointp->shortname ? strlen(waypointp->shortname) : 0;
-       fwrite(&c, 1, 1, mapsend_file_out);
-       fwrite(waypointp->shortname, c, 1, mapsend_file_out);
+       gbfwrite(&c, 1, 1, mapsend_file_out);
+       gbfwrite(waypointp->shortname, c, 1, mapsend_file_out);
        
        /* waypoint number */
-       my_fwrite4(&route_wp_count, mapsend_file_out);
-
-       dbl = waypointp->longitude;
-       my_fwrite8(&dbl, mapsend_file_out);
+       gbfputint32(route_wp_count, mapsend_file_out);
 
-       dbl = -waypointp->latitude;
-       my_fwrite8(&dbl, mapsend_file_out);
+       gbfputdbl(waypointp->longitude, mapsend_file_out);
+       gbfputdbl(-waypointp->latitude, mapsend_file_out);
 
        if (waypointp->icon_descr) {
                iconp = mag_find_token_from_descr(waypointp->icon_descr);
@@ -500,7 +390,7 @@ mapsend_route_disp(const waypoint *waypointp)
        } else  {
                c = 0;
        }
-       fwrite(&c, 1, 1, mapsend_file_out);
+       gbfwrite(&c, 1, 1, mapsend_file_out);
 }
 
 void mapsend_track_hdr(const route_head * trk)
@@ -512,7 +402,6 @@ void mapsend_track_hdr(const route_head * trk)
        char *verstring = "30";
        queue *elem, *tmp;
        char *tname;
-       unsigned char c;
        int i;
        mapsend_hdr hdr = {13, "4D533334 MS", "30", ms_type_track, {0, 0, 0}};
        
@@ -533,18 +422,15 @@ void mapsend_track_hdr(const route_head * trk)
        hdr.ms_version[0] = verstring[0];
        hdr.ms_version[1] = verstring[1];
 
-       fwrite(&hdr, sizeof(hdr), 1, mapsend_file_out);
+       gbfwrite(&hdr, sizeof(hdr), 1, mapsend_file_out);
 
        /* track name */
        if (!trk->rte_name)
                tname = xstrdup("Track");
        else
                tname = xstrdup(trk->rte_name);
+       gbfputpstr(tname, mapsend_file_out);
 
-       c = strlen(tname);
-       
-       fwrite(&c, 1, 1, mapsend_file_out);
-       fwrite(tname, c, 1, mapsend_file_out);
        xfree(tname);
        
        /* total nodes (waypoints) this track */
@@ -553,18 +439,14 @@ void mapsend_track_hdr(const route_head * trk)
                i++;
        }               
 
-       my_fwrite4(&i, mapsend_file_out);
+       gbfputint32(i, mapsend_file_out);
        
 }
 
 void mapsend_track_disp(const waypoint * wpt)
 {
        unsigned char c;
-       double dbl;
-       int i;
        int t;
-       int f;
-       int valid = 1;
        static int last_time;
 
        /*
@@ -583,35 +465,31 @@ void mapsend_track_disp(const waypoint * wpt)
        }
        
        /* x = longitude */
-       dbl = wpt->longitude;
-       my_fwrite8(&dbl, mapsend_file_out);
+       gbfputdbl(wpt->longitude, mapsend_file_out);
 
        /* x = latitude */
-       dbl = -wpt->latitude;
-       my_fwrite8(&dbl, mapsend_file_out);
+       gbfputdbl(-wpt->latitude, mapsend_file_out);
 
        /* altitude 
         * in V4.0+ this field is a float, it was previously an int
         */
        if (trk_version < 40) {
-               i = (int) wpt->altitude;
-               my_fwrite4(&i, mapsend_file_out);
+               gbfputint32((int) wpt->altitude, mapsend_file_out);
        } else {
-               f = (float) wpt->altitude;
-               my_fwrite4(&f, mapsend_file_out);
+               gbfputflt((float) wpt->altitude, mapsend_file_out);
        }
        
        /* time */
-       my_fwrite4(&t, mapsend_file_out);
+       gbfputint32(t, mapsend_file_out);
        last_time = t;
 
        /* validity */
-       my_fwrite4(&valid, mapsend_file_out);
+       gbfputint32(1, mapsend_file_out);
 
        /* 0 centiseconds */
        if (trk_version >= 30) {
-               c = wpt->centiseconds;
-               fwrite(&c, 1, 1, mapsend_file_out);
+               c = MICRO_TO_CENTI(wpt->microseconds);
+               gbfwrite(&c, 1, 1, mapsend_file_out);
        }
 }
 
@@ -631,17 +509,16 @@ mapsend_wpt_write(void)
        if (global_opts.objective == trkdata) {
                mapsend_track_write();
        } else {
-               fwrite(&hdr, sizeof(hdr), 1, mapsend_file_out);
+               gbfwrite(&hdr, sizeof(hdr), 1, mapsend_file_out);
 
                if (global_opts.objective == wptdata) {
-                       my_fwrite4(&wpt_count, mapsend_file_out);
+                       gbfputint32(wpt_count, mapsend_file_out);
                        waypt_disp_all(mapsend_waypt_pr);
                } else 
                if (global_opts.objective == rtedata) {
 
                        /* # of points - all routes */
-                       n = route_waypt_count();
-                       my_fwrite4(&n, mapsend_file_out);
+                       gbfputint32(route_waypt_count(), mapsend_file_out);
 
                        /* write points - all routes */
                        route_disp_all(mapsend_noop, mapsend_noop, mapsend_waypt_pr);
@@ -649,7 +526,7 @@ mapsend_wpt_write(void)
                
                n = route_count();
 
-               my_fwrite4(&n, mapsend_file_out);
+               gbfputint32(n, mapsend_file_out);
        
                if (n)
                        route_disp_all(mapsend_route_hdr, mapsend_noop, mapsend_route_disp);
index 01e486426dd81ccd39774da73cfeb45c3b60a0ce..edc5afd69b469c23d59c4e235410a3733c602e10 100644 (file)
@@ -1582,7 +1582,7 @@ mps_track_r(FILE *mps_file, int mps_ver, route_head **trk)
                thisWaypoint->latitude = GPS_Math_Semi_To_Deg(lat);
                thisWaypoint->longitude = GPS_Math_Semi_To_Deg(lon);
                thisWaypoint->creation_time = le_read32(&dateTime);
-               thisWaypoint->centiseconds = 0;
+               thisWaypoint->microseconds = 0;
                thisWaypoint->altitude = mps_altitude;
                thisWaypoint->depth = mps_depth;
                track_add_wpt(track_head, thisWaypoint);
index 5fdab9c72f24cbfb8c0edc27c1959b2437d57d3f..99678856dde94704d2a8b089cc92515f53946d31 100644 (file)
-/*\r
-Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd\r
-See the file COPYING for copying permission.\r
+/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd\r
+   See the file COPYING for copying permission.\r
 */\r
 \r
 #ifndef XmlParse_INCLUDED\r
 #define XmlParse_INCLUDED 1\r
 \r
+#ifdef __VMS\r
+/*      0        1         2         3      0        1         2         3\r
+        1234567890123456789012345678901     1234567890123456789012345678901 */\r
+#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler\r
+#define XML_SetUnparsedEntityDeclHandler    XML_SetUnparsedEntDeclHandler\r
+#define XML_SetStartNamespaceDeclHandler    XML_SetStartNamespcDeclHandler\r
+#define XML_SetExternalEntityRefHandlerArg  XML_SetExternalEntRefHandlerArg\r
+#endif\r
+\r
 #include <stdlib.h>\r
 \r
-#ifndef XMLPARSEAPI\r
-#  ifdef __declspec\r
-#    define XMLPARSEAPI __declspec(dllimport)\r
-#  else\r
-#    define XMLPARSEAPI /* nothing */\r
-#  endif\r
-#endif  /* not defined XMLPARSEAPI */\r
+#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)\r
+#define XML_USE_MSC_EXTENSIONS 1\r
+#endif\r
+\r
+/* Expat tries very hard to make the API boundary very specifically\r
+   defined.  There are two macros defined to control this boundary;\r
+   each of these can be defined before including this header to\r
+   achieve some different behavior, but doing so it not recommended or\r
+   tested frequently.\r
+\r
+   XMLCALL    - The calling convention to use for all calls across the\r
+                "library boundary."  This will default to cdecl, and\r
+                try really hard to tell the compiler that's what we\r
+                want.\r
+\r
+   XMLIMPORT  - Whatever magic is needed to note that a function is\r
+                to be imported from a dynamically loaded library\r
+                (.dll, .so, or .sl, depending on your platform).\r
+\r
+   The XMLCALL macro was added in Expat 1.95.7.  The only one which is\r
+   expected to be directly useful in client code is XMLCALL.\r
+\r
+   Note that on at least some Unix versions, the Expat library must be\r
+   compiled with the cdecl calling convention as the default since\r
+   system headers may assume the cdecl convention.\r
+*/\r
+#ifndef XMLCALL\r
+#if defined(XML_USE_MSC_EXTENSIONS)\r
+#define XMLCALL __cdecl\r
+#elif defined(__GNUC__)\r
+#define XMLCALL __attribute__((cdecl))\r
+#else\r
+/* For any platform which uses this definition and supports more than\r
+   one calling convention, we need to extend this definition to\r
+   declare the convention used on that platform, if it's possible to\r
+   do so.\r
+\r
+   If this is the case for your platform, please file a bug report\r
+   with information on how to identify your platform via the C\r
+   pre-processor and how to specify the same calling convention as the\r
+   platform's malloc() implementation.\r
+*/\r
+#define XMLCALL\r
+#endif\r
+#endif  /* not defined XMLCALL */\r
+\r
+\r
+#if !defined(XML_STATIC) && !defined(XMLIMPORT)\r
+#ifndef XML_BUILDING_EXPAT\r
+/* using Expat from an application */\r
+\r
+#ifdef XML_USE_MSC_EXTENSIONS\r
+#define XMLIMPORT __declspec(dllimport)\r
+#endif\r
+\r
+#endif\r
+#endif  /* not defined XML_STATIC */\r
+\r
+/* If we didn't define it above, define it away: */\r
+#ifndef XMLIMPORT\r
+#define XMLIMPORT\r
+#endif\r
+\r
+\r
+#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL\r
 \r
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
 \r
-typedef void *XML_Parser;\r
+#ifdef XML_UNICODE_WCHAR_T\r
+#define XML_UNICODE\r
+#endif\r
+\r
+struct XML_ParserStruct;\r
+typedef struct XML_ParserStruct *XML_Parser;\r
 \r
-/* Information is UTF-8 encoded. */\r
+#ifdef XML_UNICODE     /* Information is UTF-16 encoded. */\r
+#ifdef XML_UNICODE_WCHAR_T\r
+typedef wchar_t XML_Char;\r
+typedef wchar_t XML_LChar;\r
+#else\r
+typedef unsigned short XML_Char;\r
+typedef char XML_LChar;\r
+#endif /* XML_UNICODE_WCHAR_T */\r
+#else                  /* Information is UTF-8 encoded. */\r
 typedef char XML_Char;\r
 typedef char XML_LChar;\r
+#endif /* XML_UNICODE */\r
+\r
+/* Should this be defined using stdbool.h when C99 is available? */\r
+typedef unsigned char XML_Bool;\r
+#define XML_TRUE   ((XML_Bool) 1)\r
+#define XML_FALSE  ((XML_Bool) 0)\r
+\r
+/* The XML_Status enum gives the possible return values for several\r
+   API functions.  The preprocessor #defines are included so this\r
+   stanza can be added to code that still needs to support older\r
+   versions of Expat 1.95.x:\r
+\r
+   #ifndef XML_STATUS_OK\r
+   #define XML_STATUS_OK    1\r
+   #define XML_STATUS_ERROR 0\r
+   #endif\r
+\r
+   Otherwise, the #define hackery is quite ugly and would have been\r
+   dropped.\r
+*/\r
+enum XML_Status {\r
+  XML_STATUS_ERROR = 0,\r
+#define XML_STATUS_ERROR XML_STATUS_ERROR\r
+  XML_STATUS_OK = 1\r
+#define XML_STATUS_OK XML_STATUS_OK\r
+};\r
+\r
+enum XML_Error {\r
+  XML_ERROR_NONE,\r
+  XML_ERROR_NO_MEMORY,\r
+  XML_ERROR_SYNTAX,\r
+  XML_ERROR_NO_ELEMENTS,\r
+  XML_ERROR_INVALID_TOKEN,\r
+  XML_ERROR_UNCLOSED_TOKEN,\r
+  XML_ERROR_PARTIAL_CHAR,\r
+  XML_ERROR_TAG_MISMATCH,\r
+  XML_ERROR_DUPLICATE_ATTRIBUTE,\r
+  XML_ERROR_JUNK_AFTER_DOC_ELEMENT,\r
+  XML_ERROR_PARAM_ENTITY_REF,\r
+  XML_ERROR_UNDEFINED_ENTITY,\r
+  XML_ERROR_RECURSIVE_ENTITY_REF,\r
+  XML_ERROR_ASYNC_ENTITY,\r
+  XML_ERROR_BAD_CHAR_REF,\r
+  XML_ERROR_BINARY_ENTITY_REF,\r
+  XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,\r
+  XML_ERROR_MISPLACED_XML_PI,\r
+  XML_ERROR_UNKNOWN_ENCODING,\r
+  XML_ERROR_INCORRECT_ENCODING,\r
+  XML_ERROR_UNCLOSED_CDATA_SECTION,\r
+  XML_ERROR_EXTERNAL_ENTITY_HANDLING,\r
+  XML_ERROR_NOT_STANDALONE,\r
+  XML_ERROR_UNEXPECTED_STATE,\r
+  XML_ERROR_ENTITY_DECLARED_IN_PE,\r
+  XML_ERROR_FEATURE_REQUIRES_XML_DTD,\r
+  XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING,\r
+  XML_ERROR_UNBOUND_PREFIX\r
+};\r
 \r
 enum XML_Content_Type {\r
   XML_CTYPE_EMPTY = 1,\r
@@ -63,11 +199,11 @@ enum XML_Content_Quant {
 typedef struct XML_cp XML_Content;\r
 \r
 struct XML_cp {\r
-  enum XML_Content_Type                type;\r
-  enum XML_Content_Quant       quant;\r
-  const XML_Char *             name;\r
-  unsigned int                 numchildren;\r
-  XML_Content *                        children;\r
+  enum XML_Content_Type         type;\r
+  enum XML_Content_Quant        quant;\r
+  XML_Char *                    name;\r
+  unsigned int                  numchildren;\r
+  XML_Content *                 children;\r
 };\r
 \r
 \r
@@ -75,82 +211,80 @@ struct XML_cp {
    description of the model argument. It's the caller's responsibility\r
    to free model when finished with it.\r
 */\r
+typedef void (XMLCALL *XML_ElementDeclHandler) (void *userData,\r
+                                                const XML_Char *name,\r
+                                                XML_Content *model);\r
 \r
-typedef void (*XML_ElementDeclHandler) (void *userData,\r
-                                       const XML_Char *name,\r
-                                       XML_Content *model);\r
-\r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetElementDeclHandler(XML_Parser parser,\r
-                         XML_ElementDeclHandler eldecl);\r
-\r
-/*\r
-  The Attlist declaration handler is called for *each* attribute. So\r
-  a single Attlist declaration with multiple attributes declared will\r
-  generate multiple calls to this handler. The "default" parameter\r
-  may be NULL in the case of the "#IMPLIED" or "#REQUIRED" keyword.\r
-  The "isrequired" parameter will be true and the default value will\r
-  be NULL in the case of "#REQUIRED". If "isrequired" is true and\r
-  default is non-NULL, then this is a "#FIXED" default.\r
- */\r
-\r
-typedef void (*XML_AttlistDeclHandler) (void           *userData,\r
-                                       const XML_Char  *elname,\r
-                                       const XML_Char  *attname,\r
-                                       const XML_Char  *att_type,\r
-                                       const XML_Char  *dflt,\r
-                                       int             isrequired);\r
-\r
-void XMLPARSEAPI\r
+                          XML_ElementDeclHandler eldecl);\r
+\r
+/* The Attlist declaration handler is called for *each* attribute. So\r
+   a single Attlist declaration with multiple attributes declared will\r
+   generate multiple calls to this handler. The "default" parameter\r
+   may be NULL in the case of the "#IMPLIED" or "#REQUIRED"\r
+   keyword. The "isrequired" parameter will be true and the default\r
+   value will be NULL in the case of "#REQUIRED". If "isrequired" is\r
+   true and default is non-NULL, then this is a "#FIXED" default.\r
+*/\r
+typedef void (XMLCALL *XML_AttlistDeclHandler) (\r
+                                    void            *userData,\r
+                                    const XML_Char  *elname,\r
+                                    const XML_Char  *attname,\r
+                                    const XML_Char  *att_type,\r
+                                    const XML_Char  *dflt,\r
+                                    int              isrequired);\r
+\r
+XMLPARSEAPI(void)\r
 XML_SetAttlistDeclHandler(XML_Parser parser,\r
-                         XML_AttlistDeclHandler attdecl);\r
-\r
-\r
-  /* The XML declaration handler is called for *both* XML declarations and\r
-     text declarations. The way to distinguish is that the version parameter\r
-     will be null for text declarations. The encoding parameter may be null\r
-     for XML declarations. The standalone parameter will be -1, 0, or 1\r
-     indicating respectively that there was no standalone parameter in\r
-     the declaration, that it was given as no, or that it was given as yes.\r
-  */\r
-\r
-typedef void (*XML_XmlDeclHandler) (void               *userData,\r
-                                   const XML_Char      *version,\r
-                                   const XML_Char      *encoding,\r
-                                   int                 standalone);\r
+                          XML_AttlistDeclHandler attdecl);\r
+\r
+/* The XML declaration handler is called for *both* XML declarations\r
+   and text declarations. The way to distinguish is that the version\r
+   parameter will be NULL for text declarations. The encoding\r
+   parameter may be NULL for XML declarations. The standalone\r
+   parameter will be -1, 0, or 1 indicating respectively that there\r
+   was no standalone parameter in the declaration, that it was given\r
+   as no, or that it was given as yes.\r
+*/\r
+typedef void (XMLCALL *XML_XmlDeclHandler) (void           *userData,\r
+                                            const XML_Char *version,\r
+                                            const XML_Char *encoding,\r
+                                            int             standalone);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetXmlDeclHandler(XML_Parser parser,\r
-                     XML_XmlDeclHandler xmldecl);\r
+                      XML_XmlDeclHandler xmldecl);\r
 \r
 \r
 typedef struct {\r
-  void *(*malloc_fcn)(size_t size);\r
-  void *(*realloc_fcn)(void *ptr, size_t size);\r
-  void (*free_fcn)(void *ptr);\r
+  void *(XMLCALL *malloc_fcn)(size_t size);\r
+  void *(XMLCALL *realloc_fcn)(void *ptr, size_t size);\r
+  void (XMLCALL *free_fcn)(void *ptr);\r
 } XML_Memory_Handling_Suite;\r
 \r
-/* Constructs a new parser; encoding is the encoding specified by the external\r
-protocol or null if there is none specified. */\r
-\r
-XML_Parser XMLPARSEAPI\r
+/* Constructs a new parser; encoding is the encoding specified by the\r
+   external protocol or NULL if there is none specified.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
 XML_ParserCreate(const XML_Char *encoding);\r
 \r
-/* Constructs a new parser and namespace processor.  Element type names\r
-and attribute names that belong to a namespace will be expanded;\r
-unprefixed attribute names are never expanded; unprefixed element type\r
-names are expanded only if there is a default namespace. The expanded\r
-name is the concatenation of the namespace URI, the namespace separator character,\r
-and the local part of the name.  If the namespace separator is '\0' then\r
-the namespace URI and the local part will be concatenated without any\r
-separator.  When a namespace is not declared, the name and prefix will be\r
-passed through without expansion. */\r
-\r
-XML_Parser XMLPARSEAPI\r
+/* Constructs a new parser and namespace processor.  Element type\r
+   names and attribute names that belong to a namespace will be\r
+   expanded; unprefixed attribute names are never expanded; unprefixed\r
+   element type names are expanded only if there is a default\r
+   namespace. The expanded name is the concatenation of the namespace\r
+   URI, the namespace separator character, and the local part of the\r
+   name.  If the namespace separator is '\0' then the namespace URI\r
+   and the local part will be concatenated without any separator.\r
+   When a namespace is not declared, the name and prefix will be\r
+   passed through without expansion.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
 XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);\r
 \r
 \r
-/* Constructs a new parser using the memory management suit referred to\r
+/* Constructs a new parser using the memory management suite referred to\r
    by memsuite. If memsuite is NULL, then use the standard library memory\r
    suite. If namespaceSeparator is non-NULL it creates a parser with\r
    namespace processing as described above. The character pointed at\r
@@ -159,441 +293,551 @@ XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);
    All further memory operations used for the created parser will come from\r
    the given suite.\r
 */\r
-\r
-XML_Parser XMLPARSEAPI\r
+XMLPARSEAPI(XML_Parser)\r
 XML_ParserCreate_MM(const XML_Char *encoding,\r
-                   const XML_Memory_Handling_Suite *memsuite,\r
-                   const XML_Char *namespaceSeparator);\r
+                    const XML_Memory_Handling_Suite *memsuite,\r
+                    const XML_Char *namespaceSeparator);\r
 \r
-/* atts is array of name/value pairs, terminated by 0;\r
-   names and values are 0 terminated. */\r
+/* Prepare a parser object to be re-used.  This is particularly\r
+   valuable when memory allocation overhead is disproportionatly high,\r
+   such as when a large number of small documnents need to be parsed.\r
+   All handlers are cleared from the parser, except for the\r
+   unknownEncodingHandler. The parser's external state is re-initialized\r
+   except for the values of ns and ns_triplets.\r
 \r
-typedef void (*XML_StartElementHandler)(void *userData,\r
-                                       const XML_Char *name,\r
-                                       const XML_Char **atts);\r
+   Added in Expat 1.95.3.\r
+*/\r
+XMLPARSEAPI(XML_Bool)\r
+XML_ParserReset(XML_Parser parser, const XML_Char *encoding);\r
+\r
+/* atts is array of name/value pairs, terminated by 0;\r
+   names and values are 0 terminated.\r
+*/\r
+typedef void (XMLCALL *XML_StartElementHandler) (void *userData,\r
+                                                 const XML_Char *name,\r
+                                                 const XML_Char **atts);\r
 \r
-typedef void (*XML_EndElementHandler)(void *userData,\r
-                                     const XML_Char *name);\r
+typedef void (XMLCALL *XML_EndElementHandler) (void *userData,\r
+                                               const XML_Char *name);\r
 \r
 \r
 /* s is not 0 terminated. */\r
-typedef void (*XML_CharacterDataHandler)(void *userData,\r
-                                        const XML_Char *s,\r
-                                        int len);\r
+typedef void (XMLCALL *XML_CharacterDataHandler) (void *userData,\r
+                                                  const XML_Char *s,\r
+                                                  int len);\r
 \r
 /* target and data are 0 terminated */\r
-typedef void (*XML_ProcessingInstructionHandler)(void *userData,\r
-                                                const XML_Char *target,\r
-                                                const XML_Char *data);\r
+typedef void (XMLCALL *XML_ProcessingInstructionHandler) (\r
+                                                void *userData,\r
+                                                const XML_Char *target,\r
+                                                const XML_Char *data);\r
 \r
 /* data is 0 terminated */\r
-typedef void (*XML_CommentHandler)(void *userData, const XML_Char *data);\r
-\r
-typedef void (*XML_StartCdataSectionHandler)(void *userData);\r
-typedef void (*XML_EndCdataSectionHandler)(void *userData);\r
-\r
-/* This is called for any characters in the XML document for\r
-which there is no applicable handler.  This includes both\r
-characters that are part of markup which is of a kind that is\r
-not reported (comments, markup declarations), or characters\r
-that are part of a construct which could be reported but\r
-for which no handler has been supplied. The characters are passed\r
-exactly as they were in the XML document except that\r
-they will be encoded in UTF-8.  Line boundaries are not normalized.\r
-Note that a byte order mark character is not passed to the default handler.\r
-There are no guarantees about how characters are divided between calls\r
-to the default handler: for example, a comment might be split between\r
-multiple calls. */\r
-\r
-typedef void (*XML_DefaultHandler)(void *userData,\r
-                                  const XML_Char *s,\r
-                                  int len);\r
+typedef void (XMLCALL *XML_CommentHandler) (void *userData,\r
+                                            const XML_Char *data);\r
+\r
+typedef void (XMLCALL *XML_StartCdataSectionHandler) (void *userData);\r
+typedef void (XMLCALL *XML_EndCdataSectionHandler) (void *userData);\r
+\r
+/* This is called for any characters in the XML document for which\r
+   there is no applicable handler.  This includes both characters that\r
+   are part of markup which is of a kind that is not reported\r
+   (comments, markup declarations), or characters that are part of a\r
+   construct which could be reported but for which no handler has been\r
+   supplied. The characters are passed exactly as they were in the XML\r
+   document except that they will be encoded in UTF-8 or UTF-16.\r
+   Line boundaries are not normalized. Note that a byte order mark\r
+   character is not passed to the default handler. There are no\r
+   guarantees about how characters are divided between calls to the\r
+   default handler: for example, a comment might be split between\r
+   multiple calls.\r
+*/\r
+typedef void (XMLCALL *XML_DefaultHandler) (void *userData,\r
+                                            const XML_Char *s,\r
+                                            int len);\r
 \r
 /* This is called for the start of the DOCTYPE declaration, before\r
-   any DTD or internal subset is parsed. */\r
-\r
-typedef void (*XML_StartDoctypeDeclHandler)(void *userData,\r
-                                           const XML_Char *doctypeName,\r
-                                           const XML_Char *sysid,\r
-                                           const XML_Char *pubid,\r
-                                           int has_internal_subset\r
-                                           );\r
+   any DTD or internal subset is parsed.\r
+*/\r
+typedef void (XMLCALL *XML_StartDoctypeDeclHandler) (\r
+                                            void *userData,\r
+                                            const XML_Char *doctypeName,\r
+                                            const XML_Char *sysid,\r
+                                            const XML_Char *pubid,\r
+                                            int has_internal_subset);\r
 \r
 /* This is called for the start of the DOCTYPE declaration when the\r
-closing > is encountered, but after processing any external subset. */\r
-typedef void (*XML_EndDoctypeDeclHandler)(void *userData);\r
+   closing > is encountered, but after processing any external\r
+   subset.\r
+*/\r
+typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData);\r
 \r
 /* This is called for entity declarations. The is_parameter_entity\r
    argument will be non-zero if the entity is a parameter entity, zero\r
    otherwise.\r
 \r
    For internal entities (<!ENTITY foo "bar">), value will\r
-   be non-null and systemId, publicID, and notationName will be null.\r
-   The value string is NOT nulterminated; the length is provided in\r
+   be non-NULL and systemId, publicID, and notationName will be NULL.\r
+   The value string is NOT nul-terminated; the length is provided in\r
    the value_length argument. Since it is legal to have zero-length\r
    values, do not use this argument to test for internal entities.\r
 \r
-   For external entities, value will be null and systemId will be non-null.\r
-   The publicId argument will be null unless a public identifier was\r
-   provided. The notationName argument will have a non-null value only\r
-   for unparsed entity declarations.\r
-*/\r
-\r
-typedef void (*XML_EntityDeclHandler) (void *userData,\r
-                                      const XML_Char *entityName,\r
-                                      int is_parameter_entity,\r
-                                      const XML_Char *value,\r
-                                      int value_length,\r
-                                      const XML_Char *base,\r
-                                      const XML_Char *systemId,\r
-                                      const XML_Char *publicId,\r
-                                      const XML_Char *notationName);\r
-                                      \r
-void XMLPARSEAPI\r
+   For external entities, value will be NULL and systemId will be\r
+   non-NULL. The publicId argument will be NULL unless a public\r
+   identifier was provided. The notationName argument will have a\r
+   non-NULL value only for unparsed entity declarations.\r
+\r
+   Note that is_parameter_entity can't be changed to XML_Bool, since\r
+   that would break binary compatibility.\r
+*/\r
+typedef void (XMLCALL *XML_EntityDeclHandler) (\r
+                              void *userData,\r
+                              const XML_Char *entityName,\r
+                              int is_parameter_entity,\r
+                              const XML_Char *value,\r
+                              int value_length,\r
+                              const XML_Char *base,\r
+                              const XML_Char *systemId,\r
+                              const XML_Char *publicId,\r
+                              const XML_Char *notationName);\r
+\r
+XMLPARSEAPI(void)\r
 XML_SetEntityDeclHandler(XML_Parser parser,\r
-                        XML_EntityDeclHandler handler);\r
+                         XML_EntityDeclHandler handler);\r
 \r
 /* OBSOLETE -- OBSOLETE -- OBSOLETE\r
    This handler has been superceded by the EntityDeclHandler above.\r
    It is provided here for backward compatibility.\r
-This is called for a declaration of an unparsed (NDATA)\r
-entity.  The base argument is whatever was set by XML_SetBase.\r
-The entityName, systemId and notationName arguments will never be null.\r
-The other arguments may be. */\r
-\r
-typedef void (*XML_UnparsedEntityDeclHandler)(void *userData,\r
-                                             const XML_Char *entityName,\r
-                                             const XML_Char *base,\r
-                                             const XML_Char *systemId,\r
-                                             const XML_Char *publicId,\r
-                                             const XML_Char *notationName);\r
-\r
-/* This is called for a declaration of notation.\r
-The base argument is whatever was set by XML_SetBase.\r
-The notationName will never be null.  The other arguments can be. */\r
-\r
-typedef void (*XML_NotationDeclHandler)(void *userData,\r
-                                       const XML_Char *notationName,\r
-                                       const XML_Char *base,\r
-                                       const XML_Char *systemId,\r
-                                       const XML_Char *publicId);\r
+\r
+   This is called for a declaration of an unparsed (NDATA) entity.\r
+   The base argument is whatever was set by XML_SetBase. The\r
+   entityName, systemId and notationName arguments will never be\r
+   NULL. The other arguments may be.\r
+*/\r
+typedef void (XMLCALL *XML_UnparsedEntityDeclHandler) (\r
+                                    void *userData,\r
+                                    const XML_Char *entityName,\r
+                                    const XML_Char *base,\r
+                                    const XML_Char *systemId,\r
+                                    const XML_Char *publicId,\r
+                                    const XML_Char *notationName);\r
+\r
+/* This is called for a declaration of notation.  The base argument is\r
+   whatever was set by XML_SetBase. The notationName will never be\r
+   NULL.  The other arguments can be.\r
+*/\r
+typedef void (XMLCALL *XML_NotationDeclHandler) (\r
+                                    void *userData,\r
+                                    const XML_Char *notationName,\r
+                                    const XML_Char *base,\r
+                                    const XML_Char *systemId,\r
+                                    const XML_Char *publicId);\r
 \r
 /* When namespace processing is enabled, these are called once for\r
-each namespace declaration. The call to the start and end element\r
-handlers occur between the calls to the start and end namespace\r
-declaration handlers. For an xmlns attribute, prefix will be null.\r
-For an xmlns="" attribute, uri will be null. */\r
-\r
-typedef void (*XML_StartNamespaceDeclHandler)(void *userData,\r
-                                             const XML_Char *prefix,\r
-                                             const XML_Char *uri);\r
-\r
-typedef void (*XML_EndNamespaceDeclHandler)(void *userData,\r
-                                           const XML_Char *prefix);\r
-\r
-/* This is called if the document is not standalone (it has an\r
-external subset or a reference to a parameter entity, but does not\r
-have standalone="yes"). If this handler returns 0, then processing\r
-will not continue, and the parser will return a\r
-XML_ERROR_NOT_STANDALONE error. */\r
-\r
-typedef int (*XML_NotStandaloneHandler)(void *userData);\r
-\r
-/* This is called for a reference to an external parsed general entity.\r
-The referenced entity is not automatically parsed.\r
-The application can parse it immediately or later using\r
-XML_ExternalEntityParserCreate.\r
-The parser argument is the parser parsing the entity containing the reference;\r
-it can be passed as the parser argument to XML_ExternalEntityParserCreate.\r
-The systemId argument is the system identifier as specified in the entity declaration;\r
-it will not be null.\r
-The base argument is the system identifier that should be used as the base for\r
-resolving systemId if systemId was relative; this is set by XML_SetBase;\r
-it may be null.\r
-The publicId argument is the public identifier as specified in the entity declaration,\r
-or null if none was specified; the whitespace in the public identifier\r
-will have been normalized as required by the XML spec.\r
-The context argument specifies the parsing context in the format\r
-expected by the context argument to\r
-XML_ExternalEntityParserCreate; context is valid only until the handler\r
-returns, so if the referenced entity is to be parsed later, it must be copied.\r
-The handler should return 0 if processing should not continue because of\r
-a fatal error in the handling of the external entity.\r
-In this case the calling parser will return an XML_ERROR_EXTERNAL_ENTITY_HANDLING\r
-error.\r
-Note that unlike other handlers the first argument is the parser, not userData. */\r
-\r
-typedef int (*XML_ExternalEntityRefHandler)(XML_Parser parser,\r
-                                           const XML_Char *context,\r
-                                           const XML_Char *base,\r
-                                           const XML_Char *systemId,\r
-                                           const XML_Char *publicId);\r
-\r
-/* This structure is filled in by the XML_UnknownEncodingHandler\r
-to provide information to the parser about encodings that are unknown\r
-to the parser.\r
-The map[b] member gives information about byte sequences\r
-whose first byte is b.\r
-If map[b] is c where c is >= 0, then b by itself encodes the Unicode scalar value c.\r
-If map[b] is -1, then the byte sequence is malformed.\r
-If map[b] is -n, where n >= 2, then b is the first byte of an n-byte\r
-sequence that encodes a single Unicode scalar value.\r
-The data member will be passed as the first argument to the convert function.\r
-The convert function is used to convert multibyte sequences;\r
-s will point to a n-byte sequence where map[(unsigned char)*s] == -n.\r
-The convert function must return the Unicode scalar value\r
-represented by this byte sequence or -1 if the byte sequence is malformed.\r
-The convert function may be null if the encoding is a single-byte encoding,\r
-that is if map[b] >= -1 for all bytes b.\r
-When the parser is finished with the encoding, then if release is not null,\r
-it will call release passing it the data member;\r
-once release has been called, the convert function will not be called again.\r
-\r
-Expat places certain restrictions on the encodings that are supported\r
-using this mechanism.\r
-\r
-1. Every ASCII character that can appear in a well-formed XML document,\r
-other than the characters\r
-\r
-  $@\^`{}~\r
-\r
-must be represented by a single byte, and that byte must be the\r
-same byte that represents that character in ASCII.\r
-\r
-2. No character may require more than 4 bytes to encode.\r
-\r
-3. All characters encoded must have Unicode scalar values <= 0xFFFF,\r
-(ie characters that would be encoded by surrogates in UTF-16\r
-are  not allowed).  Note that this restriction doesn't apply to\r
-the built-in support for UTF-8 and UTF-16.\r
-\r
-4. No Unicode character may be encoded by more than one distinct sequence\r
-of bytes. */\r
+   each namespace declaration. The call to the start and end element\r
+   handlers occur between the calls to the start and end namespace\r
+   declaration handlers. For an xmlns attribute, prefix will be\r
+   NULL.  For an xmlns="" attribute, uri will be NULL.\r
+*/\r
+typedef void (XMLCALL *XML_StartNamespaceDeclHandler) (\r
+                                    void *userData,\r
+                                    const XML_Char *prefix,\r
+                                    const XML_Char *uri);\r
+\r
+typedef void (XMLCALL *XML_EndNamespaceDeclHandler) (\r
+                                    void *userData,\r
+                                    const XML_Char *prefix);\r
+\r
+/* This is called if the document is not standalone, that is, it has an\r
+   external subset or a reference to a parameter entity, but does not\r
+   have standalone="yes". If this handler returns XML_STATUS_ERROR,\r
+   then processing will not continue, and the parser will return a\r
+   XML_ERROR_NOT_STANDALONE error.\r
+   If parameter entity parsing is enabled, then in addition to the\r
+   conditions above this handler will only be called if the referenced\r
+   entity was actually read.\r
+*/\r
+typedef int (XMLCALL *XML_NotStandaloneHandler) (void *userData);\r
+\r
+/* This is called for a reference to an external parsed general\r
+   entity.  The referenced entity is not automatically parsed.  The\r
+   application can parse it immediately or later using\r
+   XML_ExternalEntityParserCreate.\r
+\r
+   The parser argument is the parser parsing the entity containing the\r
+   reference; it can be passed as the parser argument to\r
+   XML_ExternalEntityParserCreate.  The systemId argument is the\r
+   system identifier as specified in the entity declaration; it will\r
+   not be NULL.\r
+\r
+   The base argument is the system identifier that should be used as\r
+   the base for resolving systemId if systemId was relative; this is\r
+   set by XML_SetBase; it may be NULL.\r
+\r
+   The publicId argument is the public identifier as specified in the\r
+   entity declaration, or NULL if none was specified; the whitespace\r
+   in the public identifier will have been normalized as required by\r
+   the XML spec.\r
+\r
+   The context argument specifies the parsing context in the format\r
+   expected by the context argument to XML_ExternalEntityParserCreate;\r
+   context is valid only until the handler returns, so if the\r
+   referenced entity is to be parsed later, it must be copied.\r
+   context is NULL only when the entity is a parameter entity.\r
+\r
+   The handler should return XML_STATUS_ERROR if processing should not\r
+   continue because of a fatal error in the handling of the external\r
+   entity.  In this case the calling parser will return an\r
+   XML_ERROR_EXTERNAL_ENTITY_HANDLING error.\r
+\r
+   Note that unlike other handlers the first argument is the parser,\r
+   not userData.\r
+*/\r
+typedef int (XMLCALL *XML_ExternalEntityRefHandler) (\r
+                                    XML_Parser parser,\r
+                                    const XML_Char *context,\r
+                                    const XML_Char *base,\r
+                                    const XML_Char *systemId,\r
+                                    const XML_Char *publicId);\r
+\r
+/* This is called in two situations:\r
+   1) An entity reference is encountered for which no declaration\r
+      has been read *and* this is not an error.\r
+   2) An internal entity reference is read, but not expanded, because\r
+      XML_SetDefaultHandler has been called.\r
+   Note: skipped parameter entities in declarations and skipped general\r
+         entities in attribute values cannot be reported, because\r
+         the event would be out of sync with the reporting of the\r
+         declarations or attribute values\r
+*/\r
+typedef void (XMLCALL *XML_SkippedEntityHandler) (\r
+                                    void *userData,\r
+                                    const XML_Char *entityName,\r
+                                    int is_parameter_entity);\r
+\r
+/* This structure is filled in by the XML_UnknownEncodingHandler to\r
+   provide information to the parser about encodings that are unknown\r
+   to the parser.\r
+\r
+   The map[b] member gives information about byte sequences whose\r
+   first byte is b.\r
+\r
+   If map[b] is c where c is >= 0, then b by itself encodes the\r
+   Unicode scalar value c.\r
+\r
+   If map[b] is -1, then the byte sequence is malformed.\r
+\r
+   If map[b] is -n, where n >= 2, then b is the first byte of an\r
+   n-byte sequence that encodes a single Unicode scalar value.\r
 \r
+   The data member will be passed as the first argument to the convert\r
+   function.\r
+\r
+   The convert function is used to convert multibyte sequences; s will\r
+   point to a n-byte sequence where map[(unsigned char)*s] == -n.  The\r
+   convert function must return the Unicode scalar value represented\r
+   by this byte sequence or -1 if the byte sequence is malformed.\r
+\r
+   The convert function may be NULL if the encoding is a single-byte\r
+   encoding, that is if map[b] >= -1 for all bytes b.\r
+\r
+   When the parser is finished with the encoding, then if release is\r
+   not NULL, it will call release passing it the data member; once\r
+   release has been called, the convert function will not be called\r
+   again.\r
+\r
+   Expat places certain restrictions on the encodings that are supported\r
+   using this mechanism.\r
+\r
+   1. Every ASCII character that can appear in a well-formed XML document,\r
+      other than the characters\r
+\r
+      $@\^`{}~\r
+\r
+      must be represented by a single byte, and that byte must be the\r
+      same byte that represents that character in ASCII.\r
+\r
+   2. No character may require more than 4 bytes to encode.\r
+\r
+   3. All characters encoded must have Unicode scalar values <=\r
+      0xFFFF, (i.e., characters that would be encoded by surrogates in\r
+      UTF-16 are  not allowed).  Note that this restriction doesn't\r
+      apply to the built-in support for UTF-8 and UTF-16.\r
+\r
+   4. No Unicode character may be encoded by more than one distinct\r
+      sequence of bytes.\r
+*/\r
 typedef struct {\r
   int map[256];\r
   void *data;\r
-  int (*convert)(void *data, const char *s);\r
-  void (*release)(void *data);\r
+  int (XMLCALL *convert)(void *data, const char *s);\r
+  void (XMLCALL *release)(void *data);\r
 } XML_Encoding;\r
 \r
 /* This is called for an encoding that is unknown to the parser.\r
-The encodingHandlerData argument is that which was passed as the\r
-second argument to XML_SetUnknownEncodingHandler.\r
-The name argument gives the name of the encoding as specified in\r
-the encoding declaration.\r
-If the callback can provide information about the encoding,\r
-it must fill in the XML_Encoding structure, and return 1.\r
-Otherwise it must return 0.\r
-If info does not describe a suitable encoding,\r
-then the parser will return an XML_UNKNOWN_ENCODING error. */\r
-\r
-typedef int (*XML_UnknownEncodingHandler)(void *encodingHandlerData,\r
-                                         const XML_Char *name,\r
-                                         XML_Encoding *info);\r
-\r
-void XMLPARSEAPI\r
+\r
+   The encodingHandlerData argument is that which was passed as the\r
+   second argument to XML_SetUnknownEncodingHandler.\r
+\r
+   The name argument gives the name of the encoding as specified in\r
+   the encoding declaration.\r
+\r
+   If the callback can provide information about the encoding, it must\r
+   fill in the XML_Encoding structure, and return XML_STATUS_OK.\r
+   Otherwise it must return XML_STATUS_ERROR.\r
+\r
+   If info does not describe a suitable encoding, then the parser will\r
+   return an XML_UNKNOWN_ENCODING error.\r
+*/\r
+typedef int (XMLCALL *XML_UnknownEncodingHandler) (\r
+                                    void *encodingHandlerData,\r
+                                    const XML_Char *name,\r
+                                    XML_Encoding *info);\r
+\r
+XMLPARSEAPI(void)\r
 XML_SetElementHandler(XML_Parser parser,\r
-                     XML_StartElementHandler start,\r
-                     XML_EndElementHandler end);\r
+                      XML_StartElementHandler start,\r
+                      XML_EndElementHandler end);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetStartElementHandler(XML_Parser, XML_StartElementHandler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetEndElementHandler(XML_Parser, XML_EndElementHandler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetCharacterDataHandler(XML_Parser parser,\r
-                           XML_CharacterDataHandler handler);\r
+                            XML_CharacterDataHandler handler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetProcessingInstructionHandler(XML_Parser parser,\r
-                                   XML_ProcessingInstructionHandler handler);\r
-void XMLPARSEAPI\r
+                                    XML_ProcessingInstructionHandler handler);\r
+XMLPARSEAPI(void)\r
 XML_SetCommentHandler(XML_Parser parser,\r
                       XML_CommentHandler handler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetCdataSectionHandler(XML_Parser parser,\r
-                          XML_StartCdataSectionHandler start,\r
-                          XML_EndCdataSectionHandler end);\r
+                           XML_StartCdataSectionHandler start,\r
+                           XML_EndCdataSectionHandler end);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetStartCdataSectionHandler(XML_Parser parser,\r
                                 XML_StartCdataSectionHandler start);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetEndCdataSectionHandler(XML_Parser parser,\r
                               XML_EndCdataSectionHandler end);\r
 \r
-/* This sets the default handler and also inhibits expansion of internal entities.\r
-The entity reference will be passed to the default handler. */\r
-\r
-void XMLPARSEAPI\r
+/* This sets the default handler and also inhibits expansion of\r
+   internal entities. These entity references will be passed to the\r
+   default handler, or to the skipped entity handler, if one is set.\r
+*/\r
+XMLPARSEAPI(void)\r
 XML_SetDefaultHandler(XML_Parser parser,\r
-                     XML_DefaultHandler handler);\r
-\r
-/* This sets the default handler but does not inhibit expansion of internal entities.\r
-The entity reference will not be passed to the default handler. */\r
+                      XML_DefaultHandler handler);\r
 \r
-void XMLPARSEAPI\r
+/* This sets the default handler but does not inhibit expansion of\r
+   internal entities.  The entity reference will not be passed to the\r
+   default handler.\r
+*/\r
+XMLPARSEAPI(void)\r
 XML_SetDefaultHandlerExpand(XML_Parser parser,\r
-                           XML_DefaultHandler handler);\r
+                            XML_DefaultHandler handler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetDoctypeDeclHandler(XML_Parser parser,\r
-                         XML_StartDoctypeDeclHandler start,\r
-                         XML_EndDoctypeDeclHandler end);\r
+                          XML_StartDoctypeDeclHandler start,\r
+                          XML_EndDoctypeDeclHandler end);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetStartDoctypeDeclHandler(XML_Parser parser,\r
-                              XML_StartDoctypeDeclHandler start);\r
+                               XML_StartDoctypeDeclHandler start);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetEndDoctypeDeclHandler(XML_Parser parser,\r
-                            XML_EndDoctypeDeclHandler end);\r
+                             XML_EndDoctypeDeclHandler end);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetUnparsedEntityDeclHandler(XML_Parser parser,\r
-                                XML_UnparsedEntityDeclHandler handler);\r
+                                 XML_UnparsedEntityDeclHandler handler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetNotationDeclHandler(XML_Parser parser,\r
-                          XML_NotationDeclHandler handler);\r
+                           XML_NotationDeclHandler handler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetNamespaceDeclHandler(XML_Parser parser,\r
-                           XML_StartNamespaceDeclHandler start,\r
-                           XML_EndNamespaceDeclHandler end);\r
+                            XML_StartNamespaceDeclHandler start,\r
+                            XML_EndNamespaceDeclHandler end);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetStartNamespaceDeclHandler(XML_Parser parser,\r
-                                XML_StartNamespaceDeclHandler start);\r
+                                 XML_StartNamespaceDeclHandler start);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetEndNamespaceDeclHandler(XML_Parser parser,\r
-                              XML_EndNamespaceDeclHandler end);\r
+                               XML_EndNamespaceDeclHandler end);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetNotStandaloneHandler(XML_Parser parser,\r
-                           XML_NotStandaloneHandler handler);\r
+                            XML_NotStandaloneHandler handler);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetExternalEntityRefHandler(XML_Parser parser,\r
-                               XML_ExternalEntityRefHandler handler);\r
+                                XML_ExternalEntityRefHandler handler);\r
 \r
-/* If a non-null value for arg is specified here, then it will be passed\r
-as the first argument to the external entity ref handler instead\r
-of the parser object. */\r
-void XMLPARSEAPI\r
+/* If a non-NULL value for arg is specified here, then it will be\r
+   passed as the first argument to the external entity ref handler\r
+   instead of the parser object.\r
+*/\r
+XMLPARSEAPI(void)\r
 XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg);\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
+XML_SetSkippedEntityHandler(XML_Parser parser,\r
+                            XML_SkippedEntityHandler handler);\r
+\r
+XMLPARSEAPI(void)\r
 XML_SetUnknownEncodingHandler(XML_Parser parser,\r
-                             XML_UnknownEncodingHandler handler,\r
-                             void *encodingHandlerData);\r
+                              XML_UnknownEncodingHandler handler,\r
+                              void *encodingHandlerData);\r
 \r
-/* This can be called within a handler for a start element, end element,\r
-processing instruction or character data.  It causes the corresponding\r
-markup to be passed to the default handler. */\r
-void  XMLPARSEAPI\r
+/* This can be called within a handler for a start element, end\r
+   element, processing instruction or character data.  It causes the\r
+   corresponding markup to be passed to the default handler.\r
+*/\r
+XMLPARSEAPI(void)\r
 XML_DefaultCurrent(XML_Parser parser);\r
 \r
 /* If do_nst is non-zero, and namespace processing is in effect, and\r
    a name has a prefix (i.e. an explicit namespace qualifier) then\r
-   that name is returned as a triplet in a single\r
-   string separated by the separator character specified when the parser\r
-   was created: URI + sep + local_name + sep + prefix.\r
+   that name is returned as a triplet in a single string separated by\r
+   the separator character specified when the parser was created: URI\r
+   + sep + local_name + sep + prefix.\r
 \r
    If do_nst is zero, then namespace information is returned in the\r
-   default manner (URI + sep + local_name) whether or not the names\r
+   default manner (URI + sep + local_name) whether or not the name\r
    has a prefix.\r
+\r
+   Note: Calling XML_SetReturnNSTriplet after XML_Parse or\r
+     XML_ParseBuffer has no effect.\r
 */\r
 \r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetReturnNSTriplet(XML_Parser parser, int do_nst);\r
 \r
 /* This value is passed as the userData argument to callbacks. */\r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_SetUserData(XML_Parser parser, void *userData);\r
 \r
-/* Returns the last value set by XML_SetUserData or null. */\r
+/* Returns the last value set by XML_SetUserData or NULL. */\r
 #define XML_GetUserData(parser) (*(void **)(parser))\r
 \r
-/* This is equivalent to supplying an encoding argument\r
-to XML_ParserCreate. It must not be called after XML_Parse\r
-or XML_ParseBuffer. */\r
-\r
-int XMLPARSEAPI\r
+/* This is equivalent to supplying an encoding argument to\r
+   XML_ParserCreate. On success XML_SetEncoding returns non-zero,\r
+   zero otherwise.\r
+   Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer\r
+     has no effect and returns XML_STATUS_ERROR.\r
+*/\r
+XMLPARSEAPI(enum XML_Status)\r
 XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);\r
 \r
-/* If this function is called, then the parser will be passed\r
-as the first argument to callbacks instead of userData.\r
-The userData will still be accessible using XML_GetUserData. */\r
-\r
-void XMLPARSEAPI \r
+/* If this function is called, then the parser will be passed as the\r
+   first argument to callbacks instead of userData.  The userData will\r
+   still be accessible using XML_GetUserData.\r
+*/\r
+XMLPARSEAPI(void)\r
 XML_UseParserAsHandlerArg(XML_Parser parser);\r
 \r
-/* Sets the base to be used for resolving relative URIs in system identifiers in\r
-declarations.  Resolving relative identifiers is left to the application:\r
-this value will be passed through as the base argument to the\r
-XML_ExternalEntityRefHandler, XML_NotationDeclHandler\r
-and XML_UnparsedEntityDeclHandler. The base argument will be copied.\r
-Returns zero if out of memory, non-zero otherwise. */\r
+/* If useDTD == XML_TRUE is passed to this function, then the parser\r
+   will assume that there is an external subset, even if none is\r
+   specified in the document. In such a case the parser will call the\r
+   externalEntityRefHandler with a value of NULL for the systemId\r
+   argument (the publicId and context arguments will be NULL as well).\r
+   Note: If this function is called, then this must be done before\r
+     the first call to XML_Parse or XML_ParseBuffer, since it will\r
+     have no effect after that.  Returns\r
+     XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING.\r
+   Note: If the document does not have a DOCTYPE declaration at all,\r
+     then startDoctypeDeclHandler and endDoctypeDeclHandler will not\r
+     be called, despite an external subset being parsed.\r
+   Note: If XML_DTD is not defined when Expat is compiled, returns\r
+     XML_ERROR_FEATURE_REQUIRES_XML_DTD.\r
+*/\r
+XMLPARSEAPI(enum XML_Error)\r
+XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD);\r
+\r
 \r
-int XMLPARSEAPI\r
+/* Sets the base to be used for resolving relative URIs in system\r
+   identifiers in declarations.  Resolving relative identifiers is\r
+   left to the application: this value will be passed through as the\r
+   base argument to the XML_ExternalEntityRefHandler,\r
+   XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base\r
+   argument will be copied.  Returns XML_STATUS_ERROR if out of memory,\r
+   XML_STATUS_OK otherwise.\r
+*/\r
+XMLPARSEAPI(enum XML_Status)\r
 XML_SetBase(XML_Parser parser, const XML_Char *base);\r
 \r
-const XML_Char  XMLPARSEAPI *\r
+XMLPARSEAPI(const XML_Char *)\r
 XML_GetBase(XML_Parser parser);\r
 \r
 /* Returns the number of the attribute/value pairs passed in last call\r
-to the XML_StartElementHandler that were specified in the start-tag\r
-rather than defaulted. Each attribute/value pair counts as 2; thus\r
-this correspondds to an index into the atts array passed to the\r
-XML_StartElementHandler. */\r
-\r
-int XMLPARSEAPI\r
+   to the XML_StartElementHandler that were specified in the start-tag\r
+   rather than defaulted. Each attribute/value pair counts as 2; thus\r
+   this correspondds to an index into the atts array passed to the\r
+   XML_StartElementHandler.\r
+*/\r
+XMLPARSEAPI(int)\r
 XML_GetSpecifiedAttributeCount(XML_Parser parser);\r
 \r
 /* Returns the index of the ID attribute passed in the last call to\r
-XML_StartElementHandler, or -1 if there is no ID attribute.  Each\r
-attribute/value pair counts as 2; thus this correspondds to an index\r
-into the atts array passed to the XML_StartElementHandler. */\r
-\r
-int XMLPARSEAPI\r
+   XML_StartElementHandler, or -1 if there is no ID attribute.  Each\r
+   attribute/value pair counts as 2; thus this correspondds to an\r
+   index into the atts array passed to the XML_StartElementHandler.\r
+*/\r
+XMLPARSEAPI(int)\r
 XML_GetIdAttributeIndex(XML_Parser parser);\r
 \r
-/* Parses some input. Returns 0 if a fatal error is detected.\r
-The last call to XML_Parse must have isFinal true;\r
-len may be zero for this call (or any other). */\r
-int XMLPARSEAPI\r
+/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is\r
+   detected.  The last call to XML_Parse must have isFinal true; len\r
+   may be zero for this call (or any other).\r
+\r
+   Though the return values for these functions has always been\r
+   described as a Boolean value, the implementation, at least for the\r
+   1.95.x series, has always returned exactly one of the XML_Status\r
+   values.\r
+*/\r
+XMLPARSEAPI(enum XML_Status)\r
 XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);\r
 \r
-void XMLPARSEAPI *\r
+XMLPARSEAPI(void *)\r
 XML_GetBuffer(XML_Parser parser, int len);\r
 \r
-int XMLPARSEAPI\r
+XMLPARSEAPI(enum XML_Status)\r
 XML_ParseBuffer(XML_Parser parser, int len, int isFinal);\r
 \r
-/* Creates an XML_Parser object that can parse an external general entity;\r
-context is a '\0'-terminated string specifying the parse context;\r
-encoding is a '\0'-terminated string giving the name of the externally specified encoding,\r
-or null if there is no externally specified encoding.\r
-The context string consists of a sequence of tokens separated by formfeeds (\f);\r
-a token consisting of a name specifies that the general entity of the name\r
-is open; a token of the form prefix=uri specifies the namespace for a particular\r
-prefix; a token of the form =uri specifies the default namespace.\r
-This can be called at any point after the first call to an ExternalEntityRefHandler\r
-so longer as the parser has not yet been freed.\r
-The new parser is completely independent and may safely be used in a separate thread.\r
-The handlers and userData are initialized from the parser argument.\r
-Returns 0 if out of memory.  Otherwise returns a new XML_Parser object. */\r
-XML_Parser XMLPARSEAPI\r
+/* Creates an XML_Parser object that can parse an external general\r
+   entity; context is a '\0'-terminated string specifying the parse\r
+   context; encoding is a '\0'-terminated string giving the name of\r
+   the externally specified encoding, or NULL if there is no\r
+   externally specified encoding.  The context string consists of a\r
+   sequence of tokens separated by formfeeds (\f); a token consisting\r
+   of a name specifies that the general entity of the name is open; a\r
+   token of the form prefix=uri specifies the namespace for a\r
+   particular prefix; a token of the form =uri specifies the default\r
+   namespace.  This can be called at any point after the first call to\r
+   an ExternalEntityRefHandler so longer as the parser has not yet\r
+   been freed.  The new parser is completely independent and may\r
+   safely be used in a separate thread.  The handlers and userData are\r
+   initialized from the parser argument.  Returns NULL if out of memory.\r
+   Otherwise returns a new XML_Parser object.\r
+*/\r
+XMLPARSEAPI(XML_Parser)\r
 XML_ExternalEntityParserCreate(XML_Parser parser,\r
-                              const XML_Char *context,\r
-                              const XML_Char *encoding);\r
+                               const XML_Char *context,\r
+                               const XML_Char *encoding);\r
 \r
 enum XML_ParamEntityParsing {\r
   XML_PARAM_ENTITY_PARSING_NEVER,\r
@@ -602,109 +846,153 @@ enum XML_ParamEntityParsing {
 };\r
 \r
 /* Controls parsing of parameter entities (including the external DTD\r
-subset). If parsing of parameter entities is enabled, then references\r
-to external parameter entities (including the external DTD subset)\r
-will be passed to the handler set with\r
-XML_SetExternalEntityRefHandler.  The context passed will be 0.\r
-Unlike external general entities, external parameter entities can only\r
-be parsed synchronously.  If the external parameter entity is to be\r
-parsed, it must be parsed during the call to the external entity ref\r
-handler: the complete sequence of XML_ExternalEntityParserCreate,\r
-XML_Parse/XML_ParseBuffer and XML_ParserFree calls must be made during\r
-this call.  After XML_ExternalEntityParserCreate has been called to\r
-create the parser for the external parameter entity (context must be 0\r
-for this call), it is illegal to make any calls on the old parser\r
-until XML_ParserFree has been called on the newly created parser.  If\r
-the library has been compiled without support for parameter entity\r
-parsing (ie without XML_DTD being defined), then\r
-XML_SetParamEntityParsing will return 0 if parsing of parameter\r
-entities is requested; otherwise it will return non-zero. */\r
-\r
-int XMLPARSEAPI\r
+   subset). If parsing of parameter entities is enabled, then\r
+   references to external parameter entities (including the external\r
+   DTD subset) will be passed to the handler set with\r
+   XML_SetExternalEntityRefHandler.  The context passed will be 0.\r
+\r
+   Unlike external general entities, external parameter entities can\r
+   only be parsed synchronously.  If the external parameter entity is\r
+   to be parsed, it must be parsed during the call to the external\r
+   entity ref handler: the complete sequence of\r
+   XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and\r
+   XML_ParserFree calls must be made during this call.  After\r
+   XML_ExternalEntityParserCreate has been called to create the parser\r
+   for the external parameter entity (context must be 0 for this\r
+   call), it is illegal to make any calls on the old parser until\r
+   XML_ParserFree has been called on the newly created parser.\r
+   If the library has been compiled without support for parameter\r
+   entity parsing (ie without XML_DTD being defined), then\r
+   XML_SetParamEntityParsing will return 0 if parsing of parameter\r
+   entities is requested; otherwise it will return non-zero.\r
+   Note: If XML_SetParamEntityParsing is called after XML_Parse or\r
+      XML_ParseBuffer, then it has no effect and will always return 0.\r
+*/\r
+XMLPARSEAPI(int)\r
 XML_SetParamEntityParsing(XML_Parser parser,\r
-                         enum XML_ParamEntityParsing parsing);\r
+                          enum XML_ParamEntityParsing parsing);\r
 \r
-enum XML_Error {\r
-  XML_ERROR_NONE,\r
-  XML_ERROR_NO_MEMORY,\r
-  XML_ERROR_SYNTAX,\r
-  XML_ERROR_NO_ELEMENTS,\r
-  XML_ERROR_INVALID_TOKEN,\r
-  XML_ERROR_UNCLOSED_TOKEN,\r
-  XML_ERROR_PARTIAL_CHAR,\r
-  XML_ERROR_TAG_MISMATCH,\r
-  XML_ERROR_DUPLICATE_ATTRIBUTE,\r
-  XML_ERROR_JUNK_AFTER_DOC_ELEMENT,\r
-  XML_ERROR_PARAM_ENTITY_REF,\r
-  XML_ERROR_UNDEFINED_ENTITY,\r
-  XML_ERROR_RECURSIVE_ENTITY_REF,\r
-  XML_ERROR_ASYNC_ENTITY,\r
-  XML_ERROR_BAD_CHAR_REF,\r
-  XML_ERROR_BINARY_ENTITY_REF,\r
-  XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,\r
-  XML_ERROR_MISPLACED_XML_PI,\r
-  XML_ERROR_UNKNOWN_ENCODING,\r
-  XML_ERROR_INCORRECT_ENCODING,\r
-  XML_ERROR_UNCLOSED_CDATA_SECTION,\r
-  XML_ERROR_EXTERNAL_ENTITY_HANDLING,\r
-  XML_ERROR_NOT_STANDALONE,\r
-  XML_ERROR_UNEXPECTED_STATE\r
-};\r
-\r
-/* If XML_Parse or XML_ParseBuffer have returned 0, then XML_GetErrorCode\r
-returns information about the error. */\r
-\r
-enum XML_Error  XMLPARSEAPI\r
+/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then\r
+   XML_GetErrorCode returns information about the error.\r
+*/\r
+XMLPARSEAPI(enum XML_Error)\r
 XML_GetErrorCode(XML_Parser parser);\r
 \r
-/* These functions return information about the current parse location.\r
-They may be called when XML_Parse or XML_ParseBuffer return 0;\r
-in this case the location is the location of the character at which\r
-the error was detected.\r
-They may also be called from any other callback called to report\r
-some parse event; in this the location is the location of the first\r
-of the sequence of characters that generated the event. */\r
-\r
-int XMLPARSEAPI XML_GetCurrentLineNumber(XML_Parser parser);\r
-int XMLPARSEAPI XML_GetCurrentColumnNumber(XML_Parser parser);\r
-long XMLPARSEAPI XML_GetCurrentByteIndex(XML_Parser parser);\r
+/* These functions return information about the current parse\r
+   location.  They may be called from any callback called to report\r
+   some parse event; in this case the location is the location of the\r
+   first of the sequence of characters that generated the event.  When\r
+   called from callbacks generated by declarations in the document\r
+   prologue, the location identified isn't as neatly defined, but will\r
+   be within the relevant markup.  When called outside of the callback\r
+   functions, the position indicated will be just past the last parse\r
+   event (regardless of whether there was an associated callback).\r
+   \r
+   They may also be called after returning from a call to XML_Parse\r
+   or XML_ParseBuffer.  If the return value is XML_STATUS_ERROR then\r
+   the location is the location of the character at which the error\r
+   was detected; otherwise the location is the location of the last\r
+   parse event, as described above.\r
+*/\r
+XMLPARSEAPI(int) XML_GetCurrentLineNumber(XML_Parser parser);\r
+XMLPARSEAPI(int) XML_GetCurrentColumnNumber(XML_Parser parser);\r
+XMLPARSEAPI(long) XML_GetCurrentByteIndex(XML_Parser parser);\r
 \r
 /* Return the number of bytes in the current event.\r
-Returns 0 if the event is in an internal entity. */\r
-\r
-int XMLPARSEAPI\r
+   Returns 0 if the event is in an internal entity.\r
+*/\r
+XMLPARSEAPI(int)\r
 XML_GetCurrentByteCount(XML_Parser parser);\r
 \r
 /* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets\r
    the integer pointed to by offset to the offset within this buffer\r
    of the current parse position, and sets the integer pointed to by size\r
    to the size of this buffer (the number of input bytes). Otherwise\r
-   returns a null pointer. Also returns a null pointer if a parse isn't active.\r
+   returns a NULL pointer. Also returns a NULL pointer if a parse isn't\r
+   active.\r
 \r
    NOTE: The character pointer returned should not be used outside\r
-   the handler that makes the call. */\r
-\r
-const char XMLPARSEAPI *\r
+   the handler that makes the call.\r
+*/\r
+XMLPARSEAPI(const char *)\r
 XML_GetInputContext(XML_Parser parser,\r
-                   int *offset,\r
-                   int *size);\r
+                    int *offset,\r
+                    int *size);\r
 \r
 /* For backwards compatibility with previous versions. */\r
-#define XML_GetErrorLineNumber XML_GetCurrentLineNumber\r
+#define XML_GetErrorLineNumber   XML_GetCurrentLineNumber\r
 #define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber\r
-#define XML_GetErrorByteIndex XML_GetCurrentByteIndex\r
+#define XML_GetErrorByteIndex    XML_GetCurrentByteIndex\r
+\r
+/* Frees the content model passed to the element declaration handler */\r
+XMLPARSEAPI(void)\r
+XML_FreeContentModel(XML_Parser parser, XML_Content *model);\r
+\r
+/* Exposing the memory handling functions used in Expat */\r
+XMLPARSEAPI(void *)\r
+XML_MemMalloc(XML_Parser parser, size_t size);\r
+\r
+XMLPARSEAPI(void *)\r
+XML_MemRealloc(XML_Parser parser, void *ptr, size_t size);\r
+\r
+XMLPARSEAPI(void)\r
+XML_MemFree(XML_Parser parser, void *ptr);\r
 \r
 /* Frees memory used by the parser. */\r
-void XMLPARSEAPI\r
+XMLPARSEAPI(void)\r
 XML_ParserFree(XML_Parser parser);\r
 \r
 /* Returns a string describing the error. */\r
-const XML_LChar XMLPARSEAPI *\r
-XML_ErrorString(int code);\r
+XMLPARSEAPI(const XML_LChar *)\r
+XML_ErrorString(enum XML_Error code);\r
 \r
 /* Return a string containing the version number of this expat */\r
-const XML_LChar XMLPARSEAPI *\r
-XML_ExpatVersion();\r
+XMLPARSEAPI(const XML_LChar *)\r
+XML_ExpatVersion(void);\r
+\r
+typedef struct {\r
+  int major;\r
+  int minor;\r
+  int micro;\r
+} XML_Expat_Version;\r
+\r
+/* Return an XML_Expat_Version structure containing numeric version\r
+   number information for this version of expat.\r
+*/\r
+XMLPARSEAPI(XML_Expat_Version)\r
+XML_ExpatVersionInfo(void);\r
+\r
+/* Added in Expat 1.95.5. */\r
+enum XML_FeatureEnum {\r
+  XML_FEATURE_END = 0,\r
+  XML_FEATURE_UNICODE,\r
+  XML_FEATURE_UNICODE_WCHAR_T,\r
+  XML_FEATURE_DTD,\r
+  XML_FEATURE_CONTEXT_BYTES,\r
+  XML_FEATURE_MIN_SIZE,\r
+  XML_FEATURE_SIZEOF_XML_CHAR,\r
+  XML_FEATURE_SIZEOF_XML_LCHAR\r
+  /* Additional features must be added to the end of this enum. */\r
+};\r
+\r
+typedef struct {\r
+  enum XML_FeatureEnum  feature;\r
+  const XML_LChar       *name;\r
+  long int              value;\r
+} XML_Feature;\r
+\r
+XMLPARSEAPI(const XML_Feature *)\r
+XML_GetFeatureList(void);\r
+\r
+\r
+/* Expat follows the GNU/Linux convention of odd number minor version for\r
+   beta/development releases and even number minor version for stable\r
+   releases. Micro is bumped with each release, and set to 0 with each\r
+   change to major or minor version.\r
+*/\r
+#define XML_MAJOR_VERSION 1\r
+#define XML_MINOR_VERSION 95\r
+#define XML_MICRO_VERSION 7\r
 \r
 #ifdef __cplusplus\r
 }\r
diff --git a/mingw/lib/README b/mingw/lib/README
new file mode 100644 (file)
index 0000000..f267f5b
--- /dev/null
@@ -0,0 +1,2 @@
+files created with pexport/dlltool using libexpat.dll
+version 1.95.8 from http://sourceforge.net/projects/expat
index d4a3982bf3dcbb6586b187bf41f59c5c5dc543f4..97656d9a2fb538ce63ba77a967f564b58ff6dc79 100644 (file)
Binary files a/mingw/lib/libexpat.a and b/mingw/lib/libexpat.a differ
diff --git a/mingw/lib/libexpat.def b/mingw/lib/libexpat.def
new file mode 100755 (executable)
index 0000000..ed41244
--- /dev/null
@@ -0,0 +1,64 @@
+LIBRARY LIBEXPAT.dll\r
+EXPORTS\r
+XML_DefaultCurrent\r
+XML_ErrorString\r
+XML_ExpatVersion\r
+XML_ExpatVersionInfo\r
+XML_ExternalEntityParserCreate\r
+XML_FreeContentModel\r
+XML_GetBase\r
+XML_GetBuffer\r
+XML_GetCurrentByteCount\r
+XML_GetCurrentByteIndex\r
+XML_GetCurrentColumnNumber\r
+XML_GetCurrentLineNumber\r
+XML_GetErrorCode\r
+XML_GetFeatureList\r
+XML_GetIdAttributeIndex\r
+XML_GetInputContext\r
+XML_GetSpecifiedAttributeCount\r
+XML_MemFree\r
+XML_MemMalloc\r
+XML_MemRealloc\r
+XML_Parse\r
+XML_ParseBuffer\r
+XML_ParserCreate\r
+XML_ParserCreateNS\r
+XML_ParserCreate_MM\r
+XML_ParserFree\r
+XML_ParserReset\r
+XML_SetAttlistDeclHandler\r
+XML_SetBase\r
+XML_SetCdataSectionHandler\r
+XML_SetCharacterDataHandler\r
+XML_SetCommentHandler\r
+XML_SetDefaultHandler\r
+XML_SetDefaultHandlerExpand\r
+XML_SetDoctypeDeclHandler\r
+XML_SetElementDeclHandler\r
+XML_SetElementHandler\r
+XML_SetEncoding\r
+XML_SetEndCdataSectionHandler\r
+XML_SetEndDoctypeDeclHandler\r
+XML_SetEndElementHandler\r
+XML_SetEndNamespaceDeclHandler\r
+XML_SetEntityDeclHandler\r
+XML_SetExternalEntityRefHandler\r
+XML_SetExternalEntityRefHandlerArg\r
+XML_SetNamespaceDeclHandler\r
+XML_SetNotStandaloneHandler\r
+XML_SetNotationDeclHandler\r
+XML_SetParamEntityParsing\r
+XML_SetProcessingInstructionHandler\r
+XML_SetReturnNSTriplet\r
+XML_SetSkippedEntityHandler\r
+XML_SetStartCdataSectionHandler\r
+XML_SetStartDoctypeDeclHandler\r
+XML_SetStartElementHandler\r
+XML_SetStartNamespaceDeclHandler\r
+XML_SetUnknownEncodingHandler\r
+XML_SetUnparsedEntityDeclHandler\r
+XML_SetUserData\r
+XML_SetXmlDeclHandler\r
+XML_UseForeignDTD\r
+XML_UseParserAsHandlerArg\r
index e9a766c1bd445aa812fa384fc3233cc09b070ac2..4c925de3579d7bc74ea0c85f4d096d0070e09da1 100644 (file)
Binary files a/mingw/libexpat.dll and b/mingw/libexpat.dll differ
old mode 100644 (file)
new mode 100755 (executable)
index daa7514349cd45dc46ca44d4de5e273edc92ad37..28a01631ec80d94a32e15d63d056c453a3dd8660 100644 (file)
--- a/mkshort.c
+++ b/mkshort.c
@@ -382,6 +382,19 @@ mkshort(short_handle h, const char *istring)
        int i, l, nlen, replaced;
        mkshort_handle *hdl = (mkshort_handle *) h;
 
+
+       /*
+        * A rather horrible special case hack.
+        * If the target length is "6" and the source length is "7" and
+        * the first two characters are "GC", we'll assume it's one of the
+        * the new seven digit geocache numbers and special case whacking
+        * the 'G' off the front.
+        */
+       if ((hdl->target_len == 6) && (strlen(ostring) == 7) && 
+           (ostring[0] == 'G') && (ostring[1] == 'C')) {
+               memmove(&ostring[0], &ostring[1], strlen(ostring));
+       }
+
        /* 
         * Whack leading "[Tt]he",
         */
@@ -515,6 +528,7 @@ mkshort(short_handle h, const char *istring)
                if (dp < ostring) dp = ostring;
                memmove(dp, np, strlen(np));
                dp[strlen(np)] = 0;
+               rtrim(ostring);
        }
 
        /* 
index 3d90b917d3f300fb2e1b248f8d3459aa7dc222bc..5cc50bbbb92eb8dfae38511dec124f83bcf7e07b 100644 (file)
--- a/msroute.c
+++ b/msroute.c
@@ -578,9 +578,13 @@ msroute_read_journey(void)
                int count = 0;
                route_head *route;
                waypoint *wpt;
+               char version;
                        
                is_fatal((strncmp(head->masm, "MASM", 4) != 0), MYNAME ": Invalid or unknown data!");
-                               
+                       
+               version = buff[0x14];
+               is_fatal((version < 1) || (version > 7), MYNAME ": Unsupported version %d!", version);
+
                cin = buff + 71; // sizeof(msroute_head_t);
                        
                route = route_head_alloc();
@@ -594,6 +598,7 @@ msroute_read_journey(void)
                        short test;
                                
                        cin++;
+                       if (version == 7) cin+=8;
                        
                        len = *cin++;
                        strncpy(text, cin, len);
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/msvc/GPSBabel-msvc7.sln b/msvc/GPSBabel-msvc7.sln
new file mode 100644 (file)
index 0000000..30532e9
--- /dev/null
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GPSBabel", "GPSBabel.vcproj", "{135B8DD1-7606-409F-8395-9C248DDF94A4}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Global
+       GlobalSection(SolutionConfiguration) = preSolution
+               Debug = Debug
+               Release = Release
+       EndGlobalSection
+       GlobalSection(ProjectConfiguration) = postSolution
+               {135B8DD1-7606-409F-8395-9C248DDF94A4}.Debug.ActiveCfg = Debug|Win32
+               {135B8DD1-7606-409F-8395-9C248DDF94A4}.Debug.Build.0 = Debug|Win32
+               {135B8DD1-7606-409F-8395-9C248DDF94A4}.Release.ActiveCfg = Release|Win32
+               {135B8DD1-7606-409F-8395-9C248DDF94A4}.Release.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+       EndGlobalSection
+       GlobalSection(ExtensibilityAddIns) = postSolution
+       EndGlobalSection
+EndGlobal
diff --git a/msvc/GPSBabel-msvc7.vcproj b/msvc/GPSBabel-msvc7.vcproj
new file mode 100644 (file)
index 0000000..ba5f6cf
--- /dev/null
@@ -0,0 +1,2493 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="GPSBabel"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="1"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="expatw,..\coldsync,."
+                               PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;__WIN32__;XML_UNICODE"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="4"
+                               EnableFunctionLevelLinking="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Release/GPSBabel.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="odbc32.lib odbccp32.lib setupapi.lib"
+                               OutputFile=".\Release/GPSBabel.exe"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               ProgramDatabaseFile=".\Release/GPSBabel.pdb"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               TypeLibraryName=".\Release/GPSBabel.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1033"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="1"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="expatw,..\coldsync,."
+                               PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;__WIN32__;_DEBUG;_CONSOLE;XML_UNICODE"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="5"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Debug/GPSBabel.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               BrowseInformation="1"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="4"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="odbc32.lib odbccp32.lib setupapi.lib"
+                               OutputFile=".\Debug/GPSBabel.exe"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\Debug/GPSBabel.pdb"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               TypeLibraryName=".\Debug/GPSBabel.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1033"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+                       <File
+                               RelativePath="..\alan.c">
+                       </File>
+                       <File
+                               RelativePath="..\an1.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\arcdist.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\axim_gpb.c">
+                       </File>
+                       <File
+                               RelativePath="..\bcr.c">
+                       </File>
+                       <File
+                               RelativePath="..\brauniger_iq.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\cet.c">
+                       </File>
+                       <File
+                               RelativePath="..\cet_util.c">
+                       </File>
+                       <File
+                               RelativePath="..\cetus.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\coastexp.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\compegps.c">
+                       </File>
+                       <File
+                               RelativePath="..\copilot.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\coto.c">
+                       </File>
+                       <File
+                               RelativePath="..\cst.c">
+                       </File>
+                       <File
+                               RelativePath="..\csv_util.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\delgpl.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\discard.c">
+                       </File>
+                       <File
+                               RelativePath="..\dmtlog.c">
+                       </File>
+                       <File
+                               RelativePath="..\duplicate.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\easygps.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\fatal.c">
+                       </File>
+                       <File
+                               RelativePath="..\filter_skeleton.c">
+                       </File>
+                       <File
+                               RelativePath="..\filter_vecs.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\format_skeleton.c">
+                       </File>
+                       <File
+                               RelativePath="..\formspec.c">
+                       </File>
+                       <File
+                               RelativePath="..\garmin.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\garmin_fs.c">
+                       </File>
+                       <File
+                               RelativePath="..\garmin_tables.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\garmin_txt.c">
+                       </File>
+                       <File
+                               RelativePath="..\gbfile.c">
+                       </File>
+                       <File
+                               RelativePath="..\gbser.c">
+                       </File>
+                       <File
+                               RelativePath="..\gbser_win.c">
+                       </File>
+                       <File
+                               RelativePath="..\gbsleep.c">
+                       </File>
+                       <File
+                               RelativePath="..\gcdb.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\gdb.c">
+                       </File>
+                       <File
+                               RelativePath="..\geo.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\geoniche.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\globals.c">
+                       </File>
+                       <File
+                               RelativePath="..\glogbook.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\google.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\gpilots.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\gpspilot.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\gpssim.c">
+                       </File>
+                       <File
+                               RelativePath="..\gpsutil.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\gpx.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\grtcirc.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\gtm.c">
+                       </File>
+                       <File
+                               RelativePath="..\gtrnctr.c">
+                       </File>
+                       <File
+                               RelativePath="..\hiketech.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\holux.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\hsa_ndv.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\html.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\igc.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\ignrando.c">
+                       </File>
+                       <File
+                               RelativePath="..\inifile.c">
+                       </File>
+                       <File
+                               RelativePath="..\internal_styles.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\interpolate.c">
+                       </File>
+                       <File
+                               RelativePath="..\kml.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath=".\Expatw\libexpatw.lib">
+                       </File>
+                       <File
+                               RelativePath="..\lowranceusr.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\mag_pdb.c">
+                       </File>
+                       <File
+                               RelativePath="..\maggeo.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\magnav.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\magproto.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\main.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\mapopolis.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\mapsend.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\mapsource.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\mkshort.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\msroute.c">
+                       </File>
+                       <File
+                               RelativePath="..\navicache.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\netstumbler.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\nmea.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\nmn4.c">
+                       </File>
+                       <File
+                               RelativePath="..\nukedata.c">
+                       </File>
+                       <File
+                               RelativePath="..\overlay.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\ozi.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\palmdoc.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\pathaway.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\pcx.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\polygon.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\position.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\psitrex.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\psp.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\queue.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\quovadis.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\radius.c">
+                       </File>
+                       <File
+                               RelativePath="..\raymarine.c">
+                       </File>
+                       <File
+                               RelativePath="..\reverse_route.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\rgbcolors.c">
+                       </File>
+                       <File
+                               RelativePath="..\route.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\saroute.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\shape.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\smplrout.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\sort.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\stackfilter.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\stmsdf.c">
+                       </File>
+                       <File
+                               RelativePath="..\stmwpp.c">
+                       </File>
+                       <File
+                               RelativePath="..\strptime.c">
+                       </File>
+                       <File
+                               RelativePath="..\tef_xml.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\text.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\tiger.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\tmpro.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\tomtom.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\tpg.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\tpo.c">
+                       </File>
+                       <File
+                               RelativePath="..\trackfilter.c">
+                       </File>
+                       <File
+                               RelativePath="..\transform.c">
+                       </File>
+                       <File
+                               RelativePath="..\unicsv.c">
+                       </File>
+                       <File
+                               RelativePath="..\units.c">
+                       </File>
+                       <File
+                               RelativePath="..\util.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\util_crc.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\uuid.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\vcf.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\vecs.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\vitosmt.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\vmem.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\waypt.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\wbt-200.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\wfff_xml.c">
+                       </File>
+                       <File
+                               RelativePath="..\xcsv.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\xmlgeneric.c">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                               BasicRuntimeChecks="3"
+                                               BrowseInformation="1"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\xmltag.c">
+                       </File>
+                       <File
+                               RelativePath="..\yahoo.c">
+                       </File>
+                       <Filter
+                               Name="Jeeps"
+                               Filter="">
+                               <File
+                                       RelativePath="..\jeeps\gpsapp.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpscom.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsdevice.c">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsdevice_ser.c">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsdevice_usb.c">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsmath.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsmem.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsprot.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsread.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsrqst.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpssend.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsserial.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsusbread.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsusbsend.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsusbwin.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsutil.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Jeeps/"
+                                                       ProgramDataBaseFileName="Release\Jeeps/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Jeeps/"
+                                                       ProgramDataBaseFileName="Debug\Jeeps/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                       </Filter>
+                       <Filter
+                               Name="Coldsync"
+                               Filter="">
+                               <File
+                                       RelativePath="..\coldsync\pdb.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Coldsync/"
+                                                       ProgramDataBaseFileName="Release\Coldsync/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Coldsync/"
+                                                       ProgramDataBaseFileName="Debug\Coldsync/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\coldsync\util.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       ObjectFile=".\Release\Coldsync/"
+                                                       ProgramDataBaseFileName="Release\Coldsync/"/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       ObjectFile=".\Debug\Coldsync/"
+                                                       ProgramDataBaseFileName="Debug\Coldsync/"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                       </Filter>
+                       <Filter
+                               Name="ShapeLib"
+                               Filter="">
+                               <File
+                                       RelativePath="..\shapelib\dbfopen.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                               <File
+                                       RelativePath="..\shapelib\shpopen.c">
+                                       <FileConfiguration
+                                               Name="Release|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="2"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""/>
+                                       </FileConfiguration>
+                                       <FileConfiguration
+                                               Name="Debug|Win32">
+                                               <Tool
+                                                       Name="VCCLCompilerTool"
+                                                       Optimization="0"
+                                                       AdditionalIncludeDirectories=""
+                                                       PreprocessorDefinitions=""
+                                                       BasicRuntimeChecks="3"
+                                                       BrowseInformation="1"/>
+                                       </FileConfiguration>
+                               </File>
+                       </Filter>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl">
+                       <File
+                               RelativePath=".\config.h">
+                       </File>
+                       <File
+                               RelativePath="..\csv_util.h">
+                       </File>
+                       <File
+                               RelativePath="..\defs.h">
+                       </File>
+                       <File
+                               RelativePath="..\garmin_tables.h">
+                       </File>
+                       <File
+                               RelativePath="..\grtcirc.h">
+                       </File>
+                       <File
+                               RelativePath="..\holux.h">
+                       </File>
+                       <File
+                               RelativePath="..\magellan.h">
+                       </File>
+                       <File
+                               RelativePath="..\mapsend.h">
+                       </File>
+                       <File
+                               RelativePath="..\queue.h">
+                       </File>
+                       <File
+                               RelativePath="..\quovadis.h">
+                       </File>
+                       <File
+                               RelativePath="..\uuid.h">
+                       </File>
+                       <Filter
+                               Name="Coldsync-Headers"
+                               Filter="">
+                               <File
+                                       RelativePath="..\coldsync\config.h">
+                               </File>
+                               <File
+                                       RelativePath="..\coldsync\palm.h">
+                               </File>
+                               <File
+                                       RelativePath="..\coldsync\pdb.h">
+                               </File>
+                               <File
+                                       RelativePath="..\coldsync\pconn\util.h">
+                               </File>
+                       </Filter>
+                       <Filter
+                               Name="Jeeps-Headers"
+                               Filter="">
+                               <File
+                                       RelativePath="..\jeeps\gps.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsapp.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpscom.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsdatum.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsfmt.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsinput.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsmath.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsmem.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsnmea.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsnmeafmt.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsnmeaget.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsport.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsproj.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsprot.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsread.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsrqst.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpssend.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsserial.h">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsusbcommon.c">
+                               </File>
+                               <File
+                                       RelativePath="..\jeeps\gpsutil.h">
+                               </File>
+                       </Filter>
+                       <Filter
+                               Name="ShapeLib-Headers"
+                               Filter="">
+                               <File
+                                       RelativePath="..\shapelib\shapefil.h">
+                               </File>
+                       </Filter>
+                       <Filter
+                               Name="Zlib-Headers"
+                               Filter="">
+                               <File
+                                       RelativePath="..\zlib\crc32.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\deflate.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\inffast.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\inffixed.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\inflate.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\inftrees.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\trees.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\zconf.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\zlib.h">
+                               </File>
+                               <File
+                                       RelativePath="..\zlib\zutil.h">
+                               </File>
+                       </Filter>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
index 3c6413cb12095fcf1136cdcf1a14e35524563c99..0068ddb9e1829336b5e7c1a428e7a2d450bd89af 100644 (file)
                        Name="Source Files"\r
                        Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
                        >\r
+                       <File\r
+                               RelativePath="..\alan.c"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\an1.c"\r
                                >\r
                                        />\r
                                </FileConfiguration>\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\radius.c"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\raymarine.c"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\reverse_route.c"\r
                                >\r
                                RelativePath="..\trackfilter.c"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\transform.c"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\unicsv.c"\r
                                >\r
                                        >\r
                                </File>\r
                        </Filter>\r
+                       <Filter\r
+                               Name="Zlib"\r
+                               >\r
+                               <File\r
+                                       RelativePath="..\zlib\adler32.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\compress.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\crc32.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\deflate.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\gzio.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\infback.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inffast.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inflate.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inftrees.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\trees.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\uncompr.c"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\zutil.c"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
                </Filter>\r
                <Filter\r
                        Name="Header Files"\r
                        Filter="h;hpp;hxx;hm;inl"\r
                        >\r
+                       <File\r
+                               RelativePath=".\config.h"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\csv_util.h"\r
                                >\r
                                        >\r
                                </File>\r
                        </Filter>\r
+                       <Filter\r
+                               Name="Zlib-Headers"\r
+                               >\r
+                               <File\r
+                                       RelativePath="..\zlib\crc32.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\deflate.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inffast.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inffixed.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inflate.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\inftrees.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\trees.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\zconf.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\zlib.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\zlib\zutil.h"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
                </Filter>\r
                <Filter\r
                        Name="Resource Files"\r
                        Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
                        >\r
                </Filter>\r
-               <Filter\r
-                       Name="NewFilter1"\r
-                       >\r
-               </Filter>\r
        </Files>\r
        <Globals>\r
        </Globals>\r
index 6c513d5a0e368353e4ed03c40b323ec83ae6a438..39219e1028fd102c8f78ed4e04505f26cced7489 100644 (file)
@@ -1,28 +1,24 @@
-#define HAVE_LIBEXPAT 1\r
-#define __va_copy(ap1, ap2) ((ap1) = (ap2))\r
-\r
-// This controls the capabilities of our Character Encoding Transformations.\r
-// Undefne for minimal.\r
-// Define to zero for the common UTF-8, ASCII and related sets.\r
-// Define to one for everything we know.\r
-\r
-#undef CET_WANTED     \r
-\r
-/* 1 to enable the CSV formats support */\r
-#undef CSVFMTS_ENABLED \r
-\r
-/* 1 to enable all the filters. */\r
-#undef FILTERS_ENABLED \r
-\r
-/* 1 to enable Palm PDB support */\r
-#undef  PDBFMTS_ENABLED \r
-\r
-/* 1 to enable shapefile support */\r
-#undef SHAPELIB_ENABLED\r
-\r
-#define ZLIB_INHIBITED 1\r
-\r
-/* We really should figure out some way to get this from autoconf into\r
- * a file so that the MSVC build can pick it up\r
- */\r
-#define VERSION "1.3.1"\r
+#define HAVE_LIBEXPAT 1
+#define __va_copy(ap1, ap2) ((ap1) = (ap2))
+
+// This controls the capabilities of our Character Encoding Transformations.
+// Undefne for minimal.
+// Define to zero for the common UTF-8, ASCII and related sets.
+// Define to one for everything we know.
+
+#undef CET_WANTED     
+
+/* 1 to enable the CSV formats support */
+#undef CSVFMTS_ENABLED 
+
+/* 1 to enable all the filters. */
+#undef FILTERS_ENABLED 
+
+/* 1 to enable Palm PDB support */
+#undef  PDBFMTS_ENABLED 
+
+/* 1 to enable shapefile support */
+#undef SHAPELIB_ENABLED
+
+#define ZLIB_INHIBITED 1
+
diff --git a/nmea.c b/nmea.c
index 7d946e57adec4b184452a38705ddd69994c50d19..fcc78e486cd201ec08656490a17bb31612ad7167 100644 (file)
--- a/nmea.c
+++ b/nmea.c
@@ -155,6 +155,7 @@ static waypoint * curr_waypt = NULL;
 static waypoint * last_waypt = NULL;
 static void * gbser_handle;
 static const char *posn_fname;
+static queue pcmpt_head;
 
 static int without_date;       /* number of created trackpoints without a valid date */
 static struct tm opt_tm;       /* converted "date" parameter */
@@ -216,6 +217,7 @@ nmea_rd_init(const char *fname)
 {
        curr_waypt = NULL;
        last_waypt = NULL;
+       QUEUE_INIT(&pcmpt_head);
 
        if (getposnarg) {
                getposn = 1;
@@ -292,18 +294,18 @@ nmea_set_waypoint_time(waypoint *wpt, struct tm *time)
        if (time->tm_year == 0)
        {
                wpt->creation_time = ((((time_t)time->tm_hour * 60) + time->tm_min) * 60) + time->tm_sec;
-               if (wpt->centiseconds == 0)
+               if (wpt->microseconds == 0)
                {
-                        wpt->centiseconds++;
+                        wpt->microseconds++;
                         without_date++;
                }
        }
        else
        {
                wpt->creation_time = mkgmtime(time);
-               if (wpt->centiseconds != 0)
+               if (wpt->microseconds != 0)
                {
-                       wpt->centiseconds = 0;
+                       wpt->microseconds = 0;
                        without_date--;
                }
        }
@@ -315,7 +317,7 @@ gpgll_parse(char *ibuf)
        double latdeg, lngdeg;
        char lngdir, latdir;
        int hms;
-       char valid;
+       char valid = 0;
        waypoint *waypt;
 
        if (trk_head == NULL) {
@@ -349,6 +351,9 @@ gpgll_parse(char *ibuf)
        if (lngdir == 'W') lngdeg = -lngdeg;
        waypt->longitude = ddmm2degrees(lngdeg);
 
+       if (curr_waypt && (read_mode == rm_serial)) {
+               waypt_free(curr_waypt);
+       }
        curr_waypt = waypt;
 }
 
@@ -359,8 +364,8 @@ gpgga_parse(char *ibuf)
        char lngdir, latdir;
        double hms;
        double alt;
-       int fix;
-       int nsats;
+       int fix = fix_unknown;
+       int nsats = 0;
        double hdop;
        char altunits;
        waypoint *waypt;
@@ -423,6 +428,9 @@ gpgga_parse(char *ibuf)
                        break;
        }
 
+       if (curr_waypt && (read_mode == rm_serial)) {
+               waypt_free(curr_waypt);
+       }
        curr_waypt = waypt;
 }
 
@@ -494,6 +502,9 @@ gprmc_parse(char *ibuf)
        if (lngdir == 'W') lngdeg = -lngdeg;
        waypt->longitude = ddmm2degrees(lngdeg);
 
+       if (curr_waypt && (read_mode == rm_serial)) {
+               waypt_free(curr_waypt);
+       }
        curr_waypt = waypt;
 }
 
@@ -617,6 +628,95 @@ gpvtg_parse(char *ibuf)
        
 }
 
+/*
+ *  AVMAP EKP-IV Tracks - a proprietary (and very weird) extended NMEA.
+ * https://sourceforge.net/tracker/?func=detail&atid=489478&aid=1640814&group_id=58972 
+ */
+static 
+double pcmpt_deg(int d)
+{
+       int deg;
+       double minutes; 
+
+       deg = d  / 100000;
+       minutes = (((d / 100000.0) - deg) * 100) / 60.0;
+       return (double) deg + minutes;
+}
+
+void
+pcmpt_parse(char *ibuf)
+{
+       int i, j1, j2, j3, j4, j5, j6;
+       int lat, lon;
+       char altflag, u1, u2;
+       float alt, f1, f2;
+       char coords[20] = {0};
+       int dmy, hms;
+
+       dmy = hms = 0;
+
+       sscanf(ibuf,"$PCMPT,%d,%d,%d,%c,%f,%d,%[^,],%d,%f,%d,%f,%c,%d,%c,%d",
+               &j1, &j2, &j3, &altflag, &alt, &j4, (char *) &coords, 
+                       &j5, &f1, &j6, &f2, &u1, &dmy, &u2, &hms);
+
+       if (altflag == 'D' && curr_waypt && alt > 0) {
+               curr_waypt->altitude =  alt /*+ 500*/;
+               return;
+       }
+
+       /* 
+        * There are a couple of different second line records, but we
+        * don't care about them.
+        */
+       if (j2 != 1) {
+               return;
+       }
+
+       sscanf(coords, "%d%n", &lat, &i);
+       if (coords[i] == 'S') lat = -lat;
+       sscanf(coords + i + 1, "%d%n", &lon, &i);
+       if (coords[i] == 'W') lon= -lon;
+
+       if (lat || lon) {
+               curr_waypt = waypt_new();
+               curr_waypt->longitude = pcmpt_deg(lon);
+               curr_waypt->latitude = pcmpt_deg(lat);
+
+               tm.tm_sec = (long) hms % 100;
+               hms = hms / 100;
+               tm.tm_min = (long) hms % 100;
+               hms = hms / 100;
+               tm.tm_hour = (long) hms % 100;
+
+               tm.tm_year = dmy % 10000 - 1900;
+               dmy = dmy / 10000;
+               tm.tm_mon  = dmy % 100 - 1;
+               dmy = dmy / 100;
+               tm.tm_mday = dmy;
+               nmea_set_waypoint_time(curr_waypt, &tm);
+               ENQUEUE_HEAD(&pcmpt_head, &curr_waypt->Q);
+       } else {
+               queue *elem, *tmp;
+               route_head *trk_head;
+
+               if (QUEUE_EMPTY(&pcmpt_head)) {
+                       return;
+               }
+               
+               /* 
+                * Since we oh-so-cleverly inserted points at the head,
+                * we can rip through the queue forward now to get our
+`               * handy-dandy reversing effect.
+                */
+               trk_head = route_head_alloc();
+               track_add_head(trk_head);
+               QUEUE_FOR_EACH(&pcmpt_head, elem, tmp) {
+                       waypoint *wpt = (waypoint *) dequeue(elem);
+                       track_add_wpt(trk_head, wpt);
+               }
+       }
+}
+
 static void
 nmea_fix_timestamps(route_head *track)
 {
@@ -667,11 +767,11 @@ nmea_fix_timestamps(route_head *track)
                {
                        waypoint *wpt = (waypoint *)elem;
                        
-                       if (wpt->centiseconds != 0)
+                       if (wpt->microseconds != 0)
                        {
                                time_t dt;
                                
-                               wpt->centiseconds = 0;          /* reset flag */
+                               wpt->microseconds = 0;          /* reset flag */
 
                                dt = (prev / SECONDS_PER_DAY) * SECONDS_PER_DAY;
                                wpt->creation_time += dt;
@@ -752,6 +852,9 @@ nmea_parse_one_line(char *ibuf)
        if (0 == strncmp(tbuf, "$GPZDA,",7)) {
                gpzda_parse(tbuf);
        } else
+       if (0 == strncmp(tbuf, "$PCMPT,", 7)) {
+               pcmpt_parse(tbuf);
+       } else
        if (dogpvtg && (0 == strncmp(tbuf, "$GPVTG,",7))) {
                gpvtg_parse(tbuf); /* speed and course */
        } else
@@ -821,6 +924,8 @@ nmea_rd_posn_init(const char *fname)
                fatal(MYNAME ": Could not open '%s' for position tracking.\n", fname);
        }
 
+       gbser_flush(gbser_handle);
+
        if (opt_baud) {
                if (!gbser_set_speed(gbser_handle, atoi(opt_baud))) {
                        fatal(MYNAME ": Unable to set baud rate %s\n", opt_baud);
@@ -829,12 +934,67 @@ nmea_rd_posn_init(const char *fname)
        posn_fname = fname;
 }
 
+static void
+safe_print(int cnt, const char *b)  
+{
+       int i;
+       for (i = 0; i < cnt; i++) {
+               char c = isprint(b[i]) ? b[i] : '.';
+               fputc(c, stderr);
+       }
+}
+
+static void reset_sirf_to_nmea(int br);
+
+static 
+int hunt_sirf(void)
+{
+       /* Try to place the common BR's first to speed searching */
+       static int br[] = {38400, 9600, 57600, 115200, 19200, 4800, -1};
+       static int *brp = &br[0];
+       char ibuf[1024];
+
+       for (brp = br; *brp > 0; brp++) {
+               int rv;
+               if (global_opts.debug_level > 1) {
+                       fprintf(stderr, "Trying %d\n", *brp);
+               }
+
+               /* 
+                * Cycle our port's data speed and spray the "change to NMEA
+                * mode to the device.
+                */
+               gbser_set_speed(gbser_handle, *brp);
+               reset_sirf_to_nmea(*brp);
+
+               rv = gbser_read_line(gbser_handle, ibuf, sizeof(ibuf), 
+                       1000, 0x0a, 0x0d);
+               /* 
+                * If we didn't get a read error but did get a string that
+                * started with a dollar sign, we're probably in NMEA mode 
+                * now.
+                */
+               if ((rv > -1) && (strlen(ibuf) > 0) && ibuf[0] == '$') {
+                       return 1;
+               }
+
+               /*
+                * If nothing was received, it's not a sirf part.  Fast exit.
+                */
+               if (rv < 0) {
+                       return 0;
+               }
+       }
+       return 0;
+}
+
 static waypoint *
 nmea_rd_posn(posn_status *posn_status)
 {
        char ibuf[1024];
        static double lt = -1;
        int i;
+       int am_sirf = 0;
 
        /*
         * Read a handful of sentences, collecting the best info we
@@ -842,21 +1002,40 @@ nmea_rd_posn(posn_status *posn_status)
         * about to restart and thus the one we're collecting isn't going
         * to get any better than we now have) hand that back to the caller.
         */
+       
        for (i = 0; i < 10; i++) {
                int rv;
                ibuf[0] = 0;
                rv = gbser_read_line(gbser_handle, ibuf, sizeof(ibuf), 2000, 0x0a, 0x0d);
                if (global_opts.debug_level > 1) {
-                       warning( "READ: %s\n", ibuf);
+                       safe_print(strlen(ibuf), ibuf);
                }
                if (rv < 0) {
+                       if (am_sirf == 0) {
+                               if (global_opts.debug_level > 1) {
+                                       warning(MYNAME ": Attempting sirf mode.\n");
+                               }
+                               /* This is tacky, we have to change speed
+                                * to 9600bps to tell it to speak NMEA at
+                                * 4800.
+                                */
+                               am_sirf = hunt_sirf();
+                               if (am_sirf) {
+                                       i = 0;
+                                       continue;
+                               }
+                       }
                        fatal(MYNAME ": No data received on %s.\n", posn_fname);
                }
                nmea_parse_one_line(ibuf);
                if (lt != last_read_time) {
                        if (last_read_time) {
+                               waypoint *w = curr_waypt;
+
                                lt = last_read_time;
-                               return waypt_dupe(curr_waypt);
+                               curr_waypt = NULL;
+
+                               return w;
                        }
                }
        }
@@ -1036,3 +1215,54 @@ ff_vecs_t nmea_vecs = {
        CET_CHARSET_ASCII, 0,   /* CET-REVIEW */
        { nmea_rd_posn_init, nmea_rd_posn, nmea_rd_deinit, NULL, NULL, NULL }
 };
+
+/*
+ * If we later decide to implement a "real" Sirf module, this code should
+ * go there.  For now, we try a kind of heavy handed thing - if we don't
+ * see NMEA-isms from the device, we'll go on the premise that it MAY be
+ * a SiRF Star device and send it the "speak NMEA, please" command.
+ */
+
+static void
+sirf_write(unsigned char *buf)
+{
+       int i, chksum = 0;
+       int len = buf[2] << 8 | buf[3];
+
+       for (i = 0; i < len; i++) {
+               chksum += buf[4 + i];
+       }
+       chksum &= 0x7fff;
+
+       buf[len + 4] = chksum  >> 8;
+       buf[len + 5] = chksum  & 0xff;
+
+       gbser_write(gbser_handle, buf, len + 8);  /* 4 at front, 4 at back */
+}
+
+static
+void reset_sirf_to_nmea(int br)
+{
+       static unsigned char pkt[] = {0xa0, 0xa2, 0x00, 0x18,
+               0x81, 0x02,
+               0x01, 0x01, /* GGA */
+               0x00, 0x00, /* suppress GLL */
+               0x01, 0x00, /* suppress GSA */
+               0x05, 0x00, /* suppress GSV */
+               0x01, 0x01, /* use RMC for date*/
+               0x00, 0x00, /* suppress VTG */
+               0x00, 0x01, /* output rate */
+               0x00, 0x01, /* unused recommended values */
+               0x00, 0x01, 
+               0x00, 0x01, /* ZDA */
+               0x12, 0xc0, /* 4800 bps */
+               0x00, 0x00,  /* checksum */
+               0xb0, 0xb3}; /* packet end */
+       /* repopulate bit rate */
+       pkt[26] = br >> 8;
+       pkt[27] = br & 0xff;
+
+       sirf_write(pkt);
+       gb_sleep(250 * 1000);
+       gbser_flush(gbser_handle);
+}
index aa5d401e624d039d48fb2b912d54cbafc7c3750f..a34a801640c980bb3428193327fb17a8acbcf3f3 100644 (file)
--- a/palmdoc.c
+++ b/palmdoc.c
@@ -516,7 +516,7 @@ palmdoc_disp(const waypoint *wpt)
                        
                        logpart = xml_findfirst( curlog, "groundspeak:date" );
                        if ( logpart ) {
-                               logtime = xml_parse_time( logpart->cdata );
+                               logtime = xml_parse_time( logpart->cdata, NULL);
                                logtm = localtime( &logtime );
                                if ( logtm ) {
                                        docprintf( 15, 
index 231b7a3299fbb6b88b5a1874c87dbf820b31c30c..bede7b1cfb5be9987111ae14eb12fdf30c891488 100644 (file)
@@ -271,7 +271,7 @@ double ppdb_decode_coord(const char *str)
            if (*str == 'O') german_release = 1;
            
            tmp = strchr(str, ' ');
-           if ((tmp) && (tmp - str < 4))
+           if ((tmp) && (tmp - str < 5))
            {
                CHECK_INP(3, sscanf(str,"%c%d %lf", &dir, &deg, &val), "decode_coord(2)");
                val = deg + (val / 60.0);
diff --git a/pcx.c b/pcx.c
index b6c33d66d475b67efaa6c69f65b1e2d3dff8ac7e..f62bc358992d32d742befdbfc1204080958a1f9e 100644 (file)
--- a/pcx.c
+++ b/pcx.c
@@ -2,7 +2,7 @@
     Access to Garmin PCX5 files.
     Format described in: http://www.garmin.com/manuals/PCX5_OwnersManual.pdf
 
-    Copyright (C) 2002-2005 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2002-2006 Robert Lipe, robertlipe@usa.net
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@
 
 #include "defs.h"
 #include "garmin_tables.h"
+#include "csv_util.h"
 #include <ctype.h>
 
 static gbfile *file_in, *file_out;
@@ -30,7 +31,12 @@ static short_handle mkshort_handle2; /* for track and route names */
 static char *deficon = NULL;
 static char *cartoexploreur;
 static int read_as_degrees;
+static int read_gpsu;
 static int route_ctr;
+static int comment_col = 60;  /* This has a default */
+static int sym_col;
+static int lat_col;
+static int lon_col;
 
 #define MYNAME "PCX"
 
@@ -75,9 +81,8 @@ wr_deinit(void)
 static void
 data_read(void)
 {
-       char name[7], desc[40];
+       char name[7], desc[41];
        double lat,lon;
-       char latdir, londir;
        long alt; 
        int symnum;
        char date[10];
@@ -90,8 +95,12 @@ data_read(void)
        route_head *route = NULL;
        int n; 
        char lathemi, lonhemi;
+       char tbuf[20];
+       char nbuf[20];
+       int points;
 
        read_as_degrees  = 0;
+       points = 0;
 
        while ((buff = gbfgetstr(file_in)))
        {
@@ -100,19 +109,40 @@ data_read(void)
                
                switch (ibuf[0]) {
                case 'W': 
-                       sscanf(ibuf, "W  %6c %c%lf %c%lf %s %s %ld", 
-                               name, &latdir, &lat, &londir, &lon, 
-                               date, time, &alt);
+                       time[0] = 0;
+                       date[0] = 0;
+                       desc[0] = 0;
+                       alt = -9999;
+                       sscanf(ibuf, "W  %6c %s %s %s %s %ld", 
+                               name, tbuf, nbuf, date, time, &alt);
                        if (alt == -9999) {
                                alt = unknown_alt;
                        }
-                       sscanf(&ibuf[60], "%40c", 
-                               desc);
+
+                       if (comment_col) {
+                               strncpy(desc, &ibuf[comment_col], sizeof(desc)-1);
+                       } else {
+                               desc[0] = 0;
+                       }
+
+
                        symnum = 18;
-                       sscanf(&ibuf[116], "%d", 
-                               &symnum);
-                       desc[sizeof(desc)-1] = '\0';
+                       if (sym_col) {
+                               symnum = atoi(&ibuf[sym_col]);
+                       }
+
+                       // If we have explicit columns for lat and lon,
+                       // copy those entire words (warning: no spaces) 
+                       // into the respective coord buffers.
+                       if (lat_col) {
+                               sscanf(tbuf, "%s", ibuf + lat_col);
+                       }
+                       if (lon_col) {
+                               sscanf(nbuf, "%s", ibuf + lon_col);
+                       }
+
                        name[sizeof(name)-1] = '\0';
+                       desc[sizeof(desc)-1] = '\0';
                        
                        wpt_tmp = waypt_new();
                        wpt_tmp->altitude = alt;
@@ -126,18 +156,24 @@ data_read(void)
                        }
                        wpt_tmp->icon_descr = gt_find_desc_from_icon_number(symnum, PCX, NULL);
 
-                       if (latdir == 'S') lat = -lat;
-                       if (londir == 'W') lon = -lon;
-                       if (read_as_degrees) {
+                       if (read_as_degrees || read_gpsu) {
+                               human_to_dec(tbuf, &lat, &lon, 1);
+                               human_to_dec(nbuf, &lat, &lon, 2);
+                               
                                wpt_tmp->longitude = lon;
                                wpt_tmp->latitude = lat;
                        } else {
+                               lat = atof(&tbuf[1]);
+                               lon = atof(&nbuf[1]);
+                               if (tbuf[0] == 'S') lat = -lat;
+                               if (nbuf[0] == 'W') lon = -lon;
                                wpt_tmp->longitude = ddmm2degrees(lon);
                                wpt_tmp->latitude = ddmm2degrees(lat);
                        }
                        if (route != NULL)
                                route_add_wpt(route, waypt_dupe(wpt_tmp));
                        waypt_add(wpt_tmp);
+                       points++;
                        break;
                case 'H':
                        /* Garmap2 has headers 
@@ -145,14 +181,20 @@ data_read(void)
                        everything else is 
                          H(2 chars)TN(tracknane\0)
                        */
-                       if (ibuf[3] == 'L' && ibuf[4] == 'A') {
-                               track = route_head_alloc();
-                               track->rte_name = xstrdup("track");
-                               track_add_head(track);
-                       } else if (ibuf[3] == 'T' && ibuf[4] == 'N') {
-                               track = route_head_alloc();
-                               track->rte_name = xstrdup(&ibuf[6]);
-                               track_add_head(track);
+                       if (points > 0) {
+                               track = NULL;
+                               points = 0;
+                       }
+                       if (track == NULL) {
+                               if (ibuf[3] == 'L' && ibuf[4] == 'A') {
+                                       track = route_head_alloc();
+                                       track->rte_name = xstrdup("track");
+                                       track_add_head(track);
+                               } else if (ibuf[3] == 'T' && ibuf[4] == 'N') {
+                                       track = route_head_alloc();
+                                       track->rte_name = xstrdup(&ibuf[6]);
+                                       track_add_head(track);
+                               }
                        }
                        break;
                case 'R':
@@ -206,12 +248,47 @@ data_read(void)
                                track_add_head(track);
                        }
                        track_add_wpt(track, wpt_tmp);
+                       points++;
                        break;
                case 'U': 
                        read_as_degrees = ! strncmp("LAT LON DEG", ibuf + 3, 11);
+                       if (strstr(ibuf, "UTM")) {
+                               fatal (MYNAME ": UTM is not supported.\n");
+                       }
+                       break;
+               // GPSU is apparently PCX but with a different definition 
+               // of "LAT LON DM" - unlike the other, it actually IS decimal
+               // minutes.
+               case 'I':
+                       read_gpsu = ! (strstr(ibuf, "GPSU") == NULL) ;
                        break;
+               // This is a format specifier.  Use this line to figure out
+               // where our other columns start.
+               case 'F': {
+                       int col;
+                       char *i = ibuf;
+                       sym_col = 0;
+
+                       for (col = 0, i = ibuf; *i; col++, i++) {
+                               if (0 == case_ignore_strncmp(i, "comment", 7)) {
+                                       comment_col = col;
+                               }
+                               if (0 == case_ignore_strncmp(i, "symbol", 6)) {
+                                       sym_col = col;
+                               }
+                               if (0 == case_ignore_strncmp(i, "latitude", 8)) {
+                                       lat_col = col;
+                               }
+                               if (0 == case_ignore_strncmp(i, "longitude", 9)) {
+                                       lon_col = col;
+                               }
+                       }
+               }
+               break;
                default:
+                       break;
                        ;
+               
                }
        }
 }
index d8177ad5c478cd50c5d4e29653bf67a96ae9760c..42247d2496066fa46f61b1a9bc6be0a4363389f7 100644 (file)
@@ -59,127 +59,84 @@ gc_distance(double lat1, double lon1, double lat2, double lon2)
            );
 }
 
-static int
-position_comp(const void * a, const void * b)
-{
-       const waypoint *x1 = *(waypoint **)a;
-       const waypoint *x2 = *(waypoint **)b;
-       double latdiff, londiff, max;
-
-       /*
-        * this compare makes the assumption that things will fall into
-        * order by declaring their biggest single axial difference.
-        * It is much less math than distance and bearing from some random
-        * point.
-        */
-
-       londiff = (x1->longitude -
-                  x2->longitude) * 1000000.0;
-       latdiff = (x1->latitude -
-                  x2->latitude) * 1000000.0;
-
-       max = fabs(londiff) >= fabs(latdiff) ? floor(londiff) : floor(latdiff);
-
-       if (max < 0)
-               return (-1);
-       else if (max > 0)
-               return (1);
-
-       return(0);
-}
-
 /* tear through a waypoint queue, processing points by distance */
 static void 
 position_runqueue(queue *q, int nelems, int qtype)
 {
        queue * elem, * tmp;
        waypoint ** comp;
+       int * qlist;
        double dist;
-       int i, j;
-       int del = 0;
+       int i = 0, j, anyitem;
 
        comp = (waypoint **) xcalloc(nelems, sizeof(*comp));
-
-       i = 0;
+       qlist = (int *) xcalloc(nelems, sizeof(*qlist));
 
        QUEUE_FOR_EACH(q, elem, tmp) {
                comp[i] = (waypoint *)elem;
+               qlist[i] = 0;
                i++;
        }
-
-       if (qtype == wptdata)
-               qsort(comp, nelems, sizeof(waypoint *), position_comp);
-
-       for (i = 1, j = 0 ; i < nelems ; i++) {
-               dist = gc_distance(comp[j]->latitude,
-                                  comp[j]->longitude,
-                                  comp[i]->latitude,
-                                  comp[i]->longitude);
-
-               /* convert radians to integer feet */
-               dist = (int)(5280*radtomiles(dist));
+       
+       for (i = 0 ; i < nelems ; i++) {
+               anyitem = 0;
+
+               if (!qlist[i]) {
+                       for (j = i + 1 ; j < nelems ; j++) {
+                               if (!qlist[j]) {
+                                       dist = gc_distance(comp[j]->latitude, 
+                                               comp[j]->longitude, 
+                                               comp[i]->latitude, 
+                                               comp[i]->longitude);
                
-               if (dist <= pos_dist) {
-                       switch (qtype) {
-                               case wptdata:
-                                       waypt_del(comp[i]);
-                                       waypt_free(comp[i]);
-                                       del = !!purge_duplicates;
-                                       break;
-                               case trkdata:
-                                       track_del_wpt(cur_rte, comp[i]);
-                                       del = !!purge_duplicates;
-                                       break;
-                               case rtedata:
-                                       route_del_wpt(cur_rte, comp[i]);
-                                       del = !!purge_duplicates;
-                                       break;
-                               default:
-                                       break;
+                                               /* convert radians to integer feet */
+                                       dist = (int)(5280*radtomiles(dist));
+                                               
+                                       if (dist <= pos_dist) {
+                                               qlist[j] = 1;
+                                               switch (qtype) {
+                                                       case wptdata:
+                                                               waypt_del(comp[j]);
+                                                               waypt_free(comp[j]);
+                                                               break;
+                                                       case trkdata:
+                                                               track_del_wpt(cur_rte, comp[j]);
+                                                               break;
+                                                       case rtedata:
+                                                               route_del_wpt(cur_rte, comp[j]);
+                                                               break;
+                                                       default:
+                                                               break;
+                                               }
+                                               anyitem = 1;
+                                       }
+                               }
                        }
-               }
-               else {
-                       if (del ) {
-                           switch (qtype) {
-                               case wptdata:
-                                       waypt_del(comp[j]);
-                                       waypt_free(comp[j]);
-                                       del = 0;
-                                       break;
-                               case trkdata:
-                                       track_del_wpt(cur_rte, comp[j]);
-                                       del = 0;
-                                       break;
-                               case rtedata:
-                                       route_del_wpt(cur_rte, comp[j]);
-                                       del = 0;
-                                       break;
-                               default:
-                                       break;
-                           }
+                               
+                       if (anyitem && !!purge_duplicates) {
+                               switch (qtype) {
+                                       case wptdata:
+                                               waypt_del(comp[i]);
+                                               break;
+                                       case trkdata:
+                                               track_del_wpt(cur_rte, comp[i]);
+                                               break;
+                                       case rtedata:
+                                               route_del_wpt(cur_rte, comp[i]);
+                                               break;
+                                       default:
+                                               break;
+                               }
+                               waypt_free(comp[i]);
                        }
-                       j = i;
                }
        }
-       if ( del ) {
-               switch (qtype) {
-                       case wptdata:
-                               waypt_del(comp[j]);
-                               waypt_free(comp[j]);
-                               break;
-                       case trkdata:
-                               track_del_wpt(cur_rte, comp[j]);
-                               break;
-                       case rtedata:
-                               route_del_wpt(cur_rte, comp[j]);
-                               break;
-                       default:
-                               break;
-               }
-       }
-
+                                               
        if (comp)
                xfree(comp);
+  
+       if (qlist)
+               xfree(qlist);
 }
 
 static void
index 62443341717a498ad811a187714874718fc41c92..739fec4c9c9feaa9b43b07ffe7d0ebbebbed832e 100644 (file)
--- a/psitrex.c
+++ b/psitrex.c
@@ -41,8 +41,8 @@ typedef struct psit_icon_mapping {
        const char      *icon;
 } psit_icon_mapping_t;
 
-static FILE *psit_file_in;
-static FILE *psit_file_out;
+static gbfile *psit_file_in;
+static gbfile *psit_file_out;
 static short_handle mkshort_handle;
 
 /* 2 = not written any tracks out
@@ -180,25 +180,25 @@ psit_find_icon_number_from_desc(const char *desc)
 static void
 psit_rd_init(const char *fname)
 {
-       psit_file_in = xfopen(fname, "r", MYNAME);
+       psit_file_in = gbfopen(fname, "r", MYNAME);
 }
 
 static void
 psit_rd_deinit(void)
 {
-       fclose(psit_file_in);
+       gbfclose(psit_file_in);
 }
 
 static void
 psit_wr_init(const char *fname)
 {
-       psit_file_out = xfopen(fname, "w", MYNAME);
+       psit_file_out = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 psit_wr_deinit(void)
 {
-       fclose(psit_file_out);
+       gbfclose(psit_file_out);
 }
 
 /*
@@ -206,26 +206,26 @@ psit_wr_deinit(void)
  * and write into buf.
  */
 static void
-psit_getToken(FILE *psit_file, char *buf, size_t sz, psit_tokenSep_type delimType)
+psit_getToken(gbfile *psit_file, char *buf, size_t sz, psit_tokenSep_type delimType)
 {
        int c = -1;
 
        *buf = 0;
 
        if (delimType != EOL) {
-               while ((c = fgetc (psit_file)) != EOF) {
+               while ((c = gbfgetc(psit_file)) != EOF) {
                        if (!isspace(c)) break;
                }
        }
 
-       if (feof(psit_file)) return;
+       if (gbfeof(psit_file)) return;
 
        if (delimType == EOL) {
-               c = fgetc (psit_file);
+               c = gbfgetc(psit_file);
        }
 
        if (c == '#') {
-               if (fgets(buf, sz, psit_file) == NULL) {
+               if (gbfgets(buf, sz, psit_file) == NULL) {
                        *buf = 0;
                        return;
                }
@@ -237,13 +237,13 @@ psit_getToken(FILE *psit_file, char *buf, size_t sz, psit_tokenSep_type delimTyp
        if ((delimType == EOL) || (delimType == ltrimEOL)) {
                *buf = c;
                buf++;
-               fgets(buf, sz-1, psit_file);
+               gbfgets(buf, sz-1, psit_file);
                return;
        }
 
        while (sz--) {
                *buf++ = c;
-               if ((c = fgetc (psit_file)) == EOF) {
+               if ((c = gbfgetc (psit_file)) == EOF) {
                        *buf = 0;
                        return;
                }
@@ -280,7 +280,7 @@ psit_isKnownToken(char *buf)
  * MRCB
  */
 static void
-psit_waypoint_r(FILE *psit_file, waypoint **wpt)
+psit_waypoint_r(gbfile *psit_file, waypoint **wpt)
 {
        int             garmin_icon_num;
 
@@ -326,27 +326,27 @@ psit_waypoint_r(FILE *psit_file, waypoint **wpt)
  * MRCB
  */
 static void
-psit_waypoint_w(FILE *psit_file, const waypoint *wpt)
+psit_waypoint_w(gbfile *psit_file, const waypoint *wpt)
 {
        int     icon;
     const char *ident;
        char *src = 0;  /* BUGBUG Passed to mkshort */
 
-       fprintf(psit_file, "%11.6f,%11.6f,", 
+       gbfprintf(psit_file, "%11.6f,%11.6f,", 
                                                wpt->latitude,
                                                wpt->longitude);
 
        if (wpt->altitude == unknown_alt) 
-               fprintf(psit_file, "********,");
+               gbfprintf(psit_file, "********,");
        else
-               fprintf(psit_file, "%8.2f,",
+               gbfprintf(psit_file, "%8.2f,",
                                                wpt->altitude);
 
        ident = global_opts.synthesize_shortnames ?
                                mkshort(mkshort_handle, src) :
                                wpt->shortname;
 
-       fprintf(psit_file, " %-6s, ", ident);
+       gbfprintf(psit_file, " %-6s, ", ident);
        icon = gt_find_icon_number_from_desc(wpt->icon_descr, PCX);
 
        if (get_cache_icon(wpt) && wpt->icon_descr && (strcmp(wpt->icon_descr, "Geocache Found") != 0)) {
@@ -355,9 +355,9 @@ psit_waypoint_w(FILE *psit_file, const waypoint *wpt)
 
        ident = psit_find_desc_from_icon_number(icon);
        if (strlen(ident) == 0)
-               fprintf(psit_file, "%1d\n", icon);
+               gbfprintf(psit_file, "%1d\n", icon);
        else
-               fprintf(psit_file, "%s\n", ident);
+               gbfprintf(psit_file, "%s\n", ident);
 
 }
 
@@ -372,7 +372,7 @@ psit_waypoint_w_wrapper(const waypoint *wpt)
  * MRCB
  */
 static void
-psit_route_r(FILE *psit_file, route_head **rte)
+psit_route_r(gbfile *psit_file, route_head **rte)
 {
        char rtename[256];
        unsigned int rte_num;
@@ -438,7 +438,7 @@ psit_route_r(FILE *psit_file, route_head **rte)
 
                        route_add_wpt(rte_head, thisWaypoint);
 
-                       if (feof(psit_file)) break;
+                       if (gbfeof(psit_file)) break;
 
                        psit_getToken(psit_file,psit_current_token,sizeof(psit_current_token), wscomma);
                }
@@ -451,7 +451,7 @@ psit_route_r(FILE *psit_file, route_head **rte)
  * MRCB
  */
 static void
-psit_routehdr_w(FILE *psit_file, const route_head *rte)
+psit_routehdr_w(gbfile *psit_file, const route_head *rte)
 {
        char            hdr[20];
        unsigned int rte_datapoints;
@@ -468,6 +468,8 @@ psit_routehdr_w(FILE *psit_file, const route_head *rte)
        allWptNameLengths = 0;
 
        if (rte->waypoint_list.next) {          /* this test doesn't do what I want i.e test if this is a valid route - treat as a placeholder for now */
+               char *c;
+               
                QUEUE_FOR_EACH(&rte->waypoint_list, elem, tmp) {
                        testwpt = (waypoint *)elem;
                        if (rte_datapoints == 0) {
@@ -488,8 +490,10 @@ psit_routehdr_w(FILE *psit_file, const route_head *rte)
                else
                        rname = xstrdup(rte->rte_name);
 
-               fprintf(psit_file, "Route:  %s\n",
-                                                       rname);
+               /* check for psitrex comment sign; replace with '$' */
+               while ((c = strchr(rname, '#'))) *c = '$';
+
+               gbfprintf(psit_file, "Route:  %s\n", rname);
                xfree(rname);
        }
 }
@@ -506,7 +510,7 @@ psit_routehdr_w_wrapper(const route_head *rte)
  * MRCB
  */
 static void
-psit_track_r(FILE *psit_file, route_head **trk)
+psit_track_r(gbfile *psit_file, route_head **trk)
 {
        char tbuf[100];
        char trkname[256];
@@ -532,6 +536,8 @@ psit_track_r(FILE *psit_file, route_head **trk)
        trk_num = 0;
 
        trk_count = 0;
+       
+       track_head = NULL;
 
        psit_getToken(psit_file,psit_current_token,sizeof(psit_current_token), wscomma);
 
@@ -575,7 +581,7 @@ psit_track_r(FILE *psit_file, route_head **trk)
 
                        psit_getToken(psit_file,psit_current_token,sizeof(psit_current_token), whitespace);
 
-                       if (strcmp(psit_current_token, "1") == 0) {
+                       if ((strcmp(psit_current_token, "1") == 0) || (track_head == NULL)) {
                                track_head = route_head_alloc();
                                /* Add a number to the track name.  With Garmins, the "first" tracklog is usually ACTIVE LOG
                                   the second is ACTIVE LOG001 and so on */
@@ -591,10 +597,9 @@ psit_track_r(FILE *psit_file, route_head **trk)
                        }
 
                        thisWaypoint->creation_time = dateTime;
-                       thisWaypoint->centiseconds = 0;
                        track_add_wpt(track_head, thisWaypoint);
 
-                       if (feof(psit_file)) break;
+                       if (gbfeof(psit_file)) break;
 
                        psit_getToken(psit_file,psit_current_token,sizeof(psit_current_token), wscomma);
                }
@@ -607,7 +612,7 @@ psit_track_r(FILE *psit_file, route_head **trk)
  * MRCB
  */
 static void
-psit_trackhdr_w(FILE *psit_file, const route_head *trk)
+psit_trackhdr_w(gbfile *psit_file, const route_head *trk)
 {
        char            hdr[30];
        unsigned int trk_datapoints;
@@ -621,6 +626,8 @@ psit_trackhdr_w(FILE *psit_file, const route_head *trk)
                /* total nodes (waypoints) this track */
                trk_datapoints = 0;
                if (trk->waypoint_list.next) {  /* this test doesn't do what I want i.e test if this is a valid track - treat as a placeholder for now */
+                       char *c;
+                       
                        QUEUE_FOR_EACH(&trk->waypoint_list, elem, tmp) {
                                if (trk_datapoints == 0) {
                                        testwpt = (waypoint *)elem;
@@ -641,8 +648,10 @@ psit_trackhdr_w(FILE *psit_file, const route_head *trk)
                        else
                                tname = xstrdup(trk->rte_name);
 
-                       fprintf (psit_file, "Track:  %s\n",
-                                                               tname);
+                       /* check for psitrex comment sign; replace with '$' */
+                       while ((c = strchr(tname, '#'))) *c = '$';
+                       
+                       gbfprintf (psit_file, "Track:  %s\n", tname);
 
                        xfree(tname);
                }
@@ -662,23 +671,23 @@ psit_trackhdr_w_wrapper(const route_head *trk)
  * MRCB
  */
 static void
-psit_trackdatapoint_w(FILE *psit_file, const waypoint *wpt)
+psit_trackdatapoint_w(gbfile *psit_file, const waypoint *wpt)
 {
        time_t  t = wpt->creation_time;
        struct tm *tmTime = gmtime(&t);
 
-       fprintf(psit_file, "%11.6f,%11.6f,", 
+       gbfprintf(psit_file, "%11.6f,%11.6f,", 
                                                wpt->latitude,
                                                wpt->longitude);
 
        if (wpt->altitude == unknown_alt) 
-               fprintf(psit_file, "********, ");
+               gbfprintf(psit_file, "********, ");
        else
-               fprintf(psit_file, "%8.2f, ",
+               gbfprintf(psit_file, "%8.2f, ",
                                                wpt->altitude);
 
        /* Following date time format is fixed and reveals the origin of PsiTrex (i.e. the UK) */
-       fprintf(psit_file, "%02d/%02d/%02d %02d:%02d:%02d,",
+       gbfprintf(psit_file, "%02d/%02d/%02d %02d:%02d:%02d,",
                                                tmTime->tm_mday,
                                                tmTime->tm_mon+1,
                                                tmTime->tm_year % 100,
@@ -686,7 +695,7 @@ psit_trackdatapoint_w(FILE *psit_file, const waypoint *wpt)
                                                tmTime->tm_min,
                                                tmTime->tm_sec);
 
-       fprintf(psit_file," %d\n", psit_track_state);
+       gbfprintf(psit_file," %d\n", psit_track_state);
        psit_track_state = 0;
 }
 
@@ -737,7 +746,7 @@ psit_read(void)
                        }
                        else break;
                }
-       } while (!feof(psit_file_in));
+       } while (!gbfeof(psit_file_in));
 
        return;
 
diff --git a/queue.c b/queue.c
index 1c0b54d6593e1e97d984e80dd0d1b00b7d125716..3e81811598c155e602ed0b7d1e33c07c274d4b6a 100644 (file)
--- a/queue.c
+++ b/queue.c
@@ -39,6 +39,8 @@ dequeue(queue *element)
 
        next->prev = prev;
        prev->next = next;
+       
+       QUEUE_INIT(element);
        return element;
 }
 
diff --git a/raymarine.c b/raymarine.c
new file mode 100644 (file)
index 0000000..cc1680c
--- /dev/null
@@ -0,0 +1,476 @@
+ /*
+
+    Support for Raymarine Waypoint File (.rwf).
+
+    Copyright (C) 2006 Olaf Klein, o.b.klein@gpsbabel.org
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+*/
+
+/*  
+    Known format limits:
+
+       Waypoint name: max. 16 characters
+       Routes:        max. 50 waypoints per route
+
+    History:
+       
+       2006/10/30: Initial release (not yet in GPSBabel source tree)
+       2006/11/08: 
+*/
+
+#include "defs.h"
+#include "inifile.h"
+#include "csv_util.h"
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef unsigned long long guid_t;
+
+static inifile_t *fin;
+static gbfile *fout;
+static waypoint **depot;
+static short_handle hshort;
+static int size_of_depot, items_in_depot;
+static int rte_index, rte_wpt_index;
+static char *sguid;
+static char *opt_location;
+
+#define MYNAME "raymarine"
+
+static
+arglist_t raymarine_args[] = 
+{
+       { "location", &opt_location, "Default location", "New location", ARGTYPE_STRING, ARG_NOMINMAX },
+       ARG_TERMINATOR
+};
+
+/* from csv_util.c: convert excel time (days since 1900) to time_t and back again */
+
+#define EXCEL_TO_TIMET(a) ((a - 25569.0) * 86400.0)
+#define TIMET_TO_EXCEL(a) ((a / 86400.0) + 25569.0)
+
+/* Bitmaps */
+
+typedef struct {
+       int id;
+       char *name;
+} raymarine_symbol_mapping_t;
+
+static raymarine_symbol_mapping_t raymarine_symbols[] = {
+       { 0, "Unknown Symbol 0" },
+       { 1, "Unknown Symbol 1" },
+       { 2, "Unknown Symbol 2" },
+       { 3, "Red Square" },
+       { 4, "Big Fish" },
+       { 5, "Anchor" },
+       { 6, "Smiley" },
+       { 7, "Sad" },
+       { 8, "Red Button" },
+       { 9, "Sailfish" },
+       { 10, "Danger" },
+       { 11, "Attention" },
+       { 12, "Black Square" },
+       { 13, "Intl. Dive Flag" },
+       { 14, "Vessel" },
+       { 15, "Lobster" },
+       { 16, "Buoy" },
+       { 17, "Exclamation" },
+       { 18, "Red X" },
+       { 19, "Check Mark" },
+       { 20, "Black Plus" },
+       { 21, "Black Cross" },
+       { 22, "MOB" },
+       { 23, "Billfish" },
+       { 24, "Bottom Mark" },
+       { 25, "Circle" },
+       { 26, "Diamond" },
+       { 27, "Diamond Quarters" },
+       { 28, "U.S.Dive Flag" },
+       { 29, "Dolphin" },
+       { 30, "Few Fish" },
+       { 31, "Multiple Fish" },
+       { 32, "Many Fish" },
+       { 33, "Single Fish" },
+       { 34, "Small Fish" },
+       { 35, "Marker" },
+       { 36, "Cocktails" },
+       { 37, "Red Box Marker" },
+       { 38, "Reef" },
+       { 39, "Rocks" },
+       { 40, "FishSchool" },
+       { 41, "Seaweed" },
+       { 42, "Shark" },
+       { 43, "Sportfisher" },
+       { 44, "Swimmer" },
+       { 45, "Top Mark" },
+       { 46, "Trawler" },
+       { 47, "Tree" },
+       { 48, "Triangle" },
+       { 49, "Wreck" }
+};
+
+#define RAYMARINE_SYMBOL_CT  sizeof(raymarine_symbols) / sizeof(raymarine_symbol_mapping_t)
+#define RAYMARINE_STD_SYMBOL 3
+
+static int
+find_symbol_num(const char *descr)
+{
+       if ((descr != NULL) && (*descr)) {
+               
+               int i;
+               raymarine_symbol_mapping_t *a;
+               
+               a = &raymarine_symbols[0];
+               
+               for (i = 0; i < RAYMARINE_SYMBOL_CT; i++, a++) {
+                       if (case_ignore_strcmp(descr, a->name) == 0) return i;
+               }
+       }
+       
+       return RAYMARINE_STD_SYMBOL;
+}
+
+/* ============================================= */
+/* %%%    R A Y M A R I N E   R E A D E R    %%% */
+/* ============================================= */
+
+static void
+raymarine_rd_init(const char *fname)
+{
+       fin = inifile_init(fname, MYNAME);
+}
+
+static void
+raymarine_rd_done(void)
+{
+       inifile_done(fin);
+}
+
+static void
+raymarine_read(void)
+{
+       waypoint *wpt;
+       int ix, rx;
+       
+       /* Read all waypoints */
+       
+       for (ix = 0; ix < 0x3FFF; ix++) {
+               char sect[10];
+               char *str, *name, *lat, *lon;
+               
+               /* built section identifier */
+               snprintf(sect, sizeof(sect), "Wp%d", ix);
+               
+               /* try to read our most expected values */
+               if (NULL == (name = inifile_readstr(fin, sect, "Name"))) break;
+               if (NULL == (lat = inifile_readstr(fin, sect, "Lat"))) break;
+               if (NULL == (lon = inifile_readstr(fin, sect, "Long"))) break;
+               
+               wpt = waypt_new();
+               wpt->shortname = xstrdup(name);
+               wpt->latitude = atof(lat);
+               wpt->longitude = atof(lon);
+               waypt_add(wpt);
+               
+               /* try to read optional values */
+               if (((str = inifile_readstr(fin, sect, "Notes"))) && *str) wpt->notes = xstrdup(str);
+               if (((str = inifile_readstr(fin, sect, "Time"))) && *str) wpt->creation_time = EXCEL_TO_TIMET(atof(str));
+               if (((str = inifile_readstr(fin, sect, "Bmp"))) && *str) {
+                       int symbol = atoi(str);
+                       
+                       if ((symbol < 3) && (symbol >= RAYMARINE_SYMBOL_CT))
+                               symbol = RAYMARINE_STD_SYMBOL;
+                       wpt->icon_descr = raymarine_symbols[symbol].name;
+               }
+       }
+       
+       /* Read all routes */
+       
+       for (rx = 0; rx < 0x3FFF; rx++) {
+               char sect[10];
+               char *name;
+               route_head *rte;
+               int wx;
+
+               snprintf(sect, sizeof(sect), "Rt%d", rx);
+               if (NULL == (name = inifile_readstr(fin, sect, "Name"))) break;
+               
+               rte = route_head_alloc();
+               rte->rte_name = xstrdup(name);
+               route_add_head(rte);
+               
+               for (wx = 0; wx < 0x3FFF; wx++) {
+                       char buff[32];
+                       char *str;
+                       waypoint * wpt;
+                       
+                       snprintf(buff, sizeof(buff), "Mk%d", wx);
+                       str = inifile_readstr(fin, sect, buff);
+                       if ((str == NULL) || (*str == '\0')) break;
+                       
+                       wpt = find_waypt_by_name(str);
+                       if (wpt == NULL)
+                               fatal(MYNAME ": No associated waypoint for route point %s (Route %s)!\n",
+                                       str, rte->rte_name);
+                                       
+                       route_add_wpt(rte, waypt_dupe(wpt));
+               }
+       }
+}
+
+/* ============================================= */
+/* %%%    R A Y M A R I N E   W R I T E R    %%% */
+/* ============================================= */
+
+
+static guid_t
+mkGUID(void)
+{
+       guid_t res;
+       
+       if (gpsbabel_time != 0) {
+               srand(gpsbabel_time + rand());
+               res = ((guid_t) (gpsbabel_time) << 48) | 
+                       ((guid_t)(rand() & 0xFFFF) << 32) | 
+                       ((guid_t)(rand() & 0xFFFF) << 16) | 
+                       (rand() & 0xFFFF);
+       }
+       else res = 0;
+       
+       return res;
+}
+
+static char *
+GUID2str(guid_t GUID)
+{
+       gbuint16 w0, w1, w2, w3;
+       char *res;
+       
+       w0 = GUID & 0xFFFF; GUID = GUID >> 16;
+       w1 = GUID & 0xFFFF; GUID = GUID >> 16;
+       w2 = GUID & 0xFFFF; GUID = GUID >> 16;
+       w3 = GUID & 0xFFFF;
+       
+       xasprintf(&res, "%d-%d-%d-%d", w0, w1, w2, w3);
+       return res;
+}
+
+
+static void
+register_waypoint(const waypoint *wpt)
+{
+       int i;
+       
+       for (i = 0; i < items_in_depot; i++) {
+               waypoint *cmp = depot[i];
+               if ((strcmp(wpt->shortname, cmp->shortname) == 0) &&
+                   (wpt->latitude == cmp->latitude) &&
+                   (wpt->longitude == cmp->longitude))
+                       return;
+       }
+       
+       if (items_in_depot >= size_of_depot) {
+               size_of_depot+=16;
+               if (depot)
+                       depot = (void *) xrealloc(depot, size_of_depot * sizeof(wpt));
+               else
+                       depot = (void *) xmalloc(size_of_depot * sizeof(wpt));
+       }
+       
+       depot[items_in_depot] = (waypoint *)wpt;
+       items_in_depot++;
+}
+
+static void
+write_waypoint(gbfile *fout, const waypoint *wpt, const int waypt_no, const char *location, const char *GUID)
+{
+       char *notes;
+       char *name;
+       double time;
+               
+       /* ToDo: remove possible line-breaks from notes */
+       
+       notes = (wpt->notes != NULL) ? wpt->notes : "";
+       time = (wpt->creation_time > 0) ? TIMET_TO_EXCEL(wpt->creation_time) : TIMET_TO_EXCEL(gpsbabel_time);
+       
+       name = mkshort(hshort, wpt->shortname);
+       gbfprintf(fout, "[Wp%d]\n"
+                       "Loc=%s\n"
+                       "Name=%s\n"
+                       "Lat=%.15f\n"
+                       "Long=%.15f\n",
+               waypt_no, location, name, wpt->latitude, wpt->longitude
+       );
+       xfree(name);
+       gbfprintf(fout, "Rng=%.15f\n"
+                       "Bear=%.15f\n"
+                       "Bmp=%d\n"
+                       "Fixed=1\n"
+                       "Locked=0\n"
+                       "Notes=%s\n",
+               0.0, 0.0, 
+               find_symbol_num(wpt->icon_descr), 
+               notes
+       );
+       gbfprintf(fout, "Rel=\n"
+                       "RelSet=1\n"
+                       "RcCount=1\n"
+                       "RcRadius=%.15f\n"
+                       "Show=1\n"
+                       "RcShow=0\n"
+                       "SeaTemp=%.15f\n"
+                       "Depth=%.15f\n"
+                       "Time=%.10f00000\n"
+                       "GUID=%s\n",
+               0.0, -32678.0, 65535.0, time, GUID
+       );
+}
+
+static void
+write_route_head_cb(const route_head *rte)
+{
+       gbfprintf(fout, "[Rt%d]\n"
+                       "Name=%s\n"
+                       "Visible=1\n"
+                       "Guid=%s\n",
+               rte_index,
+               rte->rte_name,
+               sguid
+       );
+       rte_index++;
+       rte_wpt_index = 0;
+}
+
+static void
+write_route_wpt_cb(const waypoint *wpt)
+{
+       int i;
+       char *name;
+       static char *items[] = {
+               "Cog",
+               "Eta",
+               "Length"
+               "PredictedDrift",
+               "PredictedSet",
+               "PredictedSog",
+               "PredictedTime",
+               "PredictedTwa2",
+               "PredictedTwd",
+               "PredictedTws" };
+               
+       name = mkshort(hshort, wpt->shortname);
+       gbfprintf(fout, "Mk%d=%s\n", rte_wpt_index, name);
+       xfree(name);
+
+       for (i = 0; i < sizeof(items) / sizeof(char *); i++) {
+               gbfprintf(fout, "%s%d=%.15f\n", items[i], rte_wpt_index, 0.0);
+       }
+       rte_wpt_index++;
+}
+
+static void
+enum_route_hdr_cb(const route_head *rte)
+{
+       is_fatal(rte->rte_waypt_ct > 50,
+               MYNAME ": Routes with more than 50 points are not supported by Waymarine!");
+}
+
+static void
+enum_route_wpt_cb(const waypoint *wpt)
+{
+       register_waypoint(wpt);
+}
+
+static void
+raymarine_wr_init(const char *fname)
+{
+       fout = gbfopen(fname, "w", MYNAME);
+
+       hshort = mkshort_new_handle();
+       setshort_length(hshort, 16);
+
+       setshort_badchars(hshort, ",");
+       setshort_mustupper(hshort, 0);
+       setshort_mustuniq(hshort, 0);
+       setshort_whitespace_ok(hshort, 1);
+       setshort_repeating_whitespace_ok(hshort, 1);
+}
+
+static void
+raymarine_wr_done(void)
+{
+       mkshort_del_handle(&hshort);
+       gbfclose(fout);
+}
+
+static void
+raymarine_write(void)
+{
+       int i;
+       queue *elem, *tmp;
+       extern queue waypt_head;
+       guid_t guid;
+       
+       size_of_depot = 0;
+       items_in_depot = 0;
+       depot = NULL;
+       guid = mkGUID();
+       sguid = GUID2str(guid);
+
+       /* enumerate all possible waypoints */
+       QUEUE_FOR_EACH(&waypt_head, elem, tmp) {
+               waypoint *wpt = (waypoint *) elem;
+               register_waypoint(wpt);
+       }
+       route_disp_all(enum_route_hdr_cb, NULL, enum_route_wpt_cb);
+       
+       /* write out waypoint summary */
+       for (i = 0; i < items_in_depot; i++) {
+               waypoint *wpt = depot[i];
+               write_waypoint(fout, wpt, i, opt_location, sguid);
+       }
+       
+       /* write out all routes with their waypoints */
+       rte_index = 0;
+       route_disp_all(write_route_head_cb, NULL, write_route_wpt_cb);
+       
+       if (depot != NULL) xfree(depot);
+       xfree(sguid);
+}
+
+/* ================================================== */
+/* %%%    M O D U L E   R E G I S T R A T I O N   %%% */
+/* ================================================== */
+
+ff_vecs_t raymarine_vecs = {
+       ff_type_file,
+       { 
+               ff_cap_read | ff_cap_write      /* waypoints */, 
+               ff_cap_none                     /* tracks */, 
+               ff_cap_read | ff_cap_write      /* routes */, 
+       },
+       raymarine_rd_init,
+       raymarine_wr_init,
+       raymarine_rd_done,
+       raymarine_wr_done,
+       raymarine_read,
+       raymarine_write,
+       NULL,
+       raymarine_args,
+       CET_CHARSET_ASCII, 0
+};
diff --git a/reference/alantrl.gpx b/reference/alantrl.gpx
new file mode 100644 (file)
index 0000000..d7a6182
--- /dev/null
@@ -0,0 +1,2448 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+ version="1.0"
+creator="GPSBabel - http://www.gpsbabel.org"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns="http://www.topografix.com/GPX/1/0"
+xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="28.649722222" minlon="-17.973583333" maxlat="28.706111111" maxlon="-17.926500000"/>
+<trk>
+  <name>FH-DRIVE</name>
+<trkseg>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>-4542.400000</ele>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>654.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>656.000000</ele>
+  <speed>0.527778</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>657.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.948972222">
+  <ele>658.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949000000">
+  <ele>658.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>661.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>659.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>660.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>656.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>657.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>656.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>655.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>658.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>657.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>656.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>659.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949000000">
+  <ele>658.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949000000">
+  <ele>660.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949000000">
+  <ele>661.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>660.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949000000">
+  <ele>657.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>656.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>657.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.948972222">
+  <ele>656.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949000000">
+  <ele>656.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.948972222">
+  <ele>658.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949000000">
+  <ele>657.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697833333" lon="-17.949027778">
+  <ele>661.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697805556" lon="-17.949138889">
+  <ele>659.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697750000" lon="-17.949333333">
+  <ele>654.800000</ele>
+  <speed>2.000000</speed>
+</trkpt>
+<trkpt lat="28.697750000" lon="-17.949555556">
+  <ele>650.200000</ele>
+  <speed>2.388889</speed>
+</trkpt>
+<trkpt lat="28.697638889" lon="-17.949527778">
+  <ele>645.800000</ele>
+  <speed>1.888889</speed>
+</trkpt>
+<trkpt lat="28.697444444" lon="-17.949305556">
+  <ele>642.600000</ele>
+  <speed>2.861111</speed>
+</trkpt>
+<trkpt lat="28.697138889" lon="-17.949138889">
+  <ele>645.000000</ele>
+  <speed>3.194444</speed>
+</trkpt>
+<trkpt lat="28.696805556" lon="-17.948972222">
+  <ele>647.400000</ele>
+  <speed>4.083333</speed>
+</trkpt>
+<trkpt lat="28.696527778" lon="-17.949027778">
+  <ele>647.800000</ele>
+  <speed>3.805556</speed>
+</trkpt>
+<trkpt lat="28.696277778" lon="-17.949222222">
+  <ele>646.600000</ele>
+  <speed>2.833333</speed>
+</trkpt>
+<trkpt lat="28.696333333" lon="-17.949444444">
+  <ele>642.200000</ele>
+  <speed>3.055556</speed>
+</trkpt>
+<trkpt lat="28.696611111" lon="-17.949500000">
+  <ele>637.800000</ele>
+  <speed>2.722222</speed>
+</trkpt>
+<trkpt lat="28.696805556" lon="-17.949638889">
+  <ele>631.000000</ele>
+  <speed>2.944444</speed>
+</trkpt>
+<trkpt lat="28.696750000" lon="-17.950000000">
+  <ele>625.000000</ele>
+  <speed>2.666667</speed>
+</trkpt>
+<trkpt lat="28.696750000" lon="-17.950194444">
+  <ele>621.800000</ele>
+  <speed>3.333333</speed>
+</trkpt>
+<trkpt lat="28.696750000" lon="-17.950194444">
+  <ele>618.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.696750000" lon="-17.950194444">
+  <ele>615.600000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+</trkseg>
+</trk>
+<trk>
+  <name>30-12-05</name>
+  <desc>PIRATENBUCH</desc>
+<number>1</number>
+<trkseg>
+<trkpt lat="28.697861111" lon="-17.949583333">
+  <ele>-4542.400000</ele>
+</trkpt>
+<trkpt lat="28.697944444" lon="-17.949555556">
+  <ele>653.000000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.698027778" lon="-17.949555556">
+  <ele>651.000000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.698083333" lon="-17.949527778">
+  <ele>654.200000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.698111111" lon="-17.949527778">
+  <ele>650.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698111111" lon="-17.949527778">
+  <ele>648.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698138889" lon="-17.949527778">
+  <ele>651.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698250000" lon="-17.949555556">
+  <ele>649.800000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.698333333" lon="-17.949638889">
+  <ele>644.400000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.698416667" lon="-17.949694444">
+  <ele>645.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.698500000" lon="-17.949694444">
+  <ele>647.000000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.698611111" lon="-17.949666667">
+  <ele>645.600000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.698694444" lon="-17.949694444">
+  <ele>643.400000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.698777778" lon="-17.949722222">
+  <ele>639.800000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.698861111" lon="-17.949750000">
+  <ele>639.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.698861111" lon="-17.949777778">
+  <ele>640.400000</ele>
+  <speed>0.666667</speed>
+</trkpt>
+<trkpt lat="28.698888889" lon="-17.949805556">
+  <ele>647.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698944444" lon="-17.949777778">
+  <ele>649.400000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.699027778" lon="-17.949722222">
+  <ele>648.800000</ele>
+  <speed>1.722222</speed>
+</trkpt>
+<trkpt lat="28.699083333" lon="-17.949666667">
+  <ele>646.200000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.699083333" lon="-17.949694444">
+  <ele>642.800000</ele>
+  <speed>0.555556</speed>
+</trkpt>
+<trkpt lat="28.699111111" lon="-17.949666667">
+  <ele>639.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699166667" lon="-17.949611111">
+  <ele>635.400000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.699194444" lon="-17.949527778">
+  <ele>631.400000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.699250000" lon="-17.949416667">
+  <ele>625.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.699277778" lon="-17.949361111">
+  <ele>623.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.699277778" lon="-17.949361111">
+  <ele>624.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699305556" lon="-17.949361111">
+  <ele>624.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699277778" lon="-17.949361111">
+  <ele>625.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699333333" lon="-17.949305556">
+  <ele>625.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699333333" lon="-17.949361111">
+  <ele>623.800000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.699305556" lon="-17.949500000">
+  <ele>626.000000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.699361111" lon="-17.949638889">
+  <ele>625.800000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.699416667" lon="-17.949750000">
+  <ele>629.000000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.699416667" lon="-17.949777778">
+  <ele>628.200000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.699444444" lon="-17.949916667">
+  <ele>626.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699444444" lon="-17.949972222">
+  <ele>625.800000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.699500000" lon="-17.950027778">
+  <ele>624.800000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.699555556" lon="-17.950138889">
+  <ele>622.600000</ele>
+  <speed>0.555556</speed>
+</trkpt>
+<trkpt lat="28.699583333" lon="-17.950166667">
+  <ele>621.400000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.699666667" lon="-17.950222222">
+  <ele>623.200000</ele>
+  <speed>0.666667</speed>
+</trkpt>
+<trkpt lat="28.699722222" lon="-17.950250000">
+  <ele>623.000000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.699833333" lon="-17.950250000">
+  <ele>621.200000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.699916667" lon="-17.950277778">
+  <ele>619.400000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.699972222" lon="-17.950250000">
+  <ele>621.000000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.699944444" lon="-17.950277778">
+  <ele>621.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699972222" lon="-17.950444444">
+  <ele>622.200000</ele>
+  <speed>1.583333</speed>
+</trkpt>
+<trkpt lat="28.700027778" lon="-17.950527778">
+  <ele>622.200000</ele>
+  <speed>1.583333</speed>
+</trkpt>
+<trkpt lat="28.700111111" lon="-17.950444444">
+  <ele>625.400000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.700138889" lon="-17.950388889">
+  <ele>618.400000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.700222222" lon="-17.950333333">
+  <ele>617.200000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.700305556" lon="-17.950277778">
+  <ele>615.200000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+<trkpt lat="28.700388889" lon="-17.950250000">
+  <ele>616.200000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.700444444" lon="-17.950250000">
+  <ele>616.000000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.700527778" lon="-17.950222222">
+  <ele>613.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700611111" lon="-17.950111111">
+  <ele>609.200000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.700666667" lon="-17.950083333">
+  <ele>607.600000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.950138889">
+  <ele>604.800000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.700750000" lon="-17.950166667">
+  <ele>606.400000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.950250000">
+  <ele>609.600000</ele>
+  <speed>0.833333</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.950333333">
+  <ele>614.200000</ele>
+  <speed>0.750000</speed>
+</trkpt>
+<trkpt lat="28.700666667" lon="-17.950444444">
+  <ele>618.800000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.700638889" lon="-17.950527778">
+  <ele>619.400000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.700638889" lon="-17.950583333">
+  <ele>621.800000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.700611111" lon="-17.950583333">
+  <ele>623.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.950694444">
+  <ele>625.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.950750000">
+  <ele>629.600000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.700638889" lon="-17.950805556">
+  <ele>628.600000</ele>
+  <speed>0.555556</speed>
+</trkpt>
+<trkpt lat="28.700666667" lon="-17.950833333">
+  <ele>624.200000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.700694444" lon="-17.950861111">
+  <ele>625.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700694444" lon="-17.950833333">
+  <ele>623.800000</ele>
+  <speed>0.583333</speed>
+</trkpt>
+<trkpt lat="28.700694444" lon="-17.950805556">
+  <ele>607.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.950861111">
+  <ele>597.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.950944444">
+  <ele>613.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700777778" lon="-17.951000000">
+  <ele>621.400000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.700750000" lon="-17.951083333">
+  <ele>618.600000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.951166667">
+  <ele>618.200000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.700833333" lon="-17.951166667">
+  <ele>615.800000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.951194444">
+  <ele>615.600000</ele>
+  <speed>0.833333</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.951138889">
+  <ele>614.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.951138889">
+  <ele>623.000000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.951138889">
+  <ele>630.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.951111111">
+  <ele>626.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.951111111">
+  <ele>624.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700916667" lon="-17.951111111">
+  <ele>627.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701027778" lon="-17.951138889">
+  <ele>627.000000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.701111111" lon="-17.951166667">
+  <ele>625.200000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.701138889" lon="-17.951166667">
+  <ele>624.400000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.701138889" lon="-17.951166667">
+  <ele>624.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701111111" lon="-17.951166667">
+  <ele>623.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701111111" lon="-17.951166667">
+  <ele>621.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701111111" lon="-17.951138889">
+  <ele>618.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701111111" lon="-17.951138889">
+  <ele>614.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701194444" lon="-17.951111111">
+  <ele>618.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701305556" lon="-17.951138889">
+  <ele>621.200000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.701444444" lon="-17.951222222">
+  <ele>624.000000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.701583333" lon="-17.951305556">
+  <ele>623.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701750000" lon="-17.951361111">
+  <ele>626.600000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.701916667" lon="-17.951416667">
+  <ele>627.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.702055556" lon="-17.951472222">
+  <ele>626.200000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.702194444" lon="-17.951527778">
+  <ele>626.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.702305556" lon="-17.951583333">
+  <ele>628.800000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.702416667" lon="-17.951611111">
+  <ele>629.200000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.702555556" lon="-17.951611111">
+  <ele>629.200000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.702638889" lon="-17.951583333">
+  <ele>628.200000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.702694444" lon="-17.951555556">
+  <ele>627.400000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.702777778" lon="-17.951472222">
+  <ele>626.600000</ele>
+  <speed>0.750000</speed>
+</trkpt>
+<trkpt lat="28.702861111" lon="-17.951388889">
+  <ele>626.800000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.702944444" lon="-17.951277778">
+  <ele>626.600000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.703055556" lon="-17.951222222">
+  <ele>628.000000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.703166667" lon="-17.951222222">
+  <ele>629.600000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.703277778" lon="-17.951277778">
+  <ele>629.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.703361111" lon="-17.951388889">
+  <ele>629.400000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.703388889" lon="-17.951500000">
+  <ele>627.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.703416667" lon="-17.951638889">
+  <ele>627.200000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.703444444" lon="-17.951777778">
+  <ele>626.400000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.703472222" lon="-17.951916667">
+  <ele>625.600000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.703500000" lon="-17.951972222">
+  <ele>625.200000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.703500000" lon="-17.951916667">
+  <ele>621.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703500000" lon="-17.951944444">
+  <ele>613.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703527778" lon="-17.951972222">
+  <ele>618.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703138889" lon="-17.952277778">
+  <ele>623.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.702888889" lon="-17.952722222">
+  <ele>619.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.702666667" lon="-17.953194444">
+  <ele>606.200000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.702527778" lon="-17.953694444">
+  <ele>596.000000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.702500000" lon="-17.954000000">
+  <ele>595.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.702166667" lon="-17.954361111">
+  <ele>596.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701861111" lon="-17.954750000">
+  <ele>591.200000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.701638889" lon="-17.955222222">
+  <ele>572.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701305556" lon="-17.955583333">
+  <ele>555.200000</ele>
+  <speed>0.611111</speed>
+</trkpt>
+<trkpt lat="28.701000000" lon="-17.955972222">
+  <ele>550.800000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.700611111" lon="-17.956250000">
+  <ele>542.800000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.700222222" lon="-17.956527778">
+  <ele>545.000000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.699861111" lon="-17.956861111">
+  <ele>532.200000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.699638889" lon="-17.957305556">
+  <ele>521.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699666667" lon="-17.957833333">
+  <ele>513.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.699777778" lon="-17.958333333">
+  <ele>504.800000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.700111111" lon="-17.958694444">
+  <ele>503.400000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.700500000" lon="-17.958972222">
+  <ele>501.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.700777778" lon="-17.959388889">
+  <ele>501.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.700305556" lon="-17.959416667">
+  <ele>495.400000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.699916667" lon="-17.959694444">
+  <ele>487.000000</ele>
+  <speed>1.611111</speed>
+</trkpt>
+<trkpt lat="28.699611111" lon="-17.960083333">
+  <ele>481.800000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.699333333" lon="-17.960500000">
+  <ele>475.200000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.698861111" lon="-17.960500000">
+  <ele>475.200000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.698500000" lon="-17.960805556">
+  <ele>467.800000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.698777778" lon="-17.961222222">
+  <ele>458.400000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.699222222" lon="-17.961361111">
+  <ele>457.000000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.699694444" lon="-17.961416667">
+  <ele>448.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.699638889" lon="-17.961944444">
+  <ele>442.800000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.699527778" lon="-17.962444444">
+  <ele>433.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.699527778" lon="-17.962972222">
+  <ele>429.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699333333" lon="-17.963444444">
+  <ele>424.800000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.698944444" lon="-17.963722222">
+  <ele>411.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.698527778" lon="-17.963944444">
+  <ele>404.000000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.698111111" lon="-17.963750000">
+  <ele>395.800000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.697694444" lon="-17.963500000">
+  <ele>390.400000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.697277778" lon="-17.963750000">
+  <ele>386.400000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.696888889" lon="-17.963472222">
+  <ele>385.400000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.696666667" lon="-17.963000000">
+  <ele>391.400000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.696555556" lon="-17.963500000">
+  <ele>377.800000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.696583333" lon="-17.964027778">
+  <ele>370.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.696833333" lon="-17.964472222">
+  <ele>371.000000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.697027778" lon="-17.964944444">
+  <ele>363.800000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.697333333" lon="-17.965333333">
+  <ele>356.200000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.697694444" lon="-17.965694444">
+  <ele>349.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.698027778" lon="-17.966055556">
+  <ele>344.800000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.698111111" lon="-17.966583333">
+  <ele>341.800000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.698166667" lon="-17.967111111">
+  <ele>336.000000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.698361111" lon="-17.967583333">
+  <ele>320.600000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.698500000" lon="-17.968083333">
+  <ele>310.800000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.698583333" lon="-17.968611111">
+  <ele>299.200000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.698694444" lon="-17.968666667">
+  <ele>290.400000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.698694444" lon="-17.968666667">
+  <ele>284.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698694444" lon="-17.968666667">
+  <ele>283.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698694444" lon="-17.968666667">
+  <ele>283.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698722222" lon="-17.968666667">
+  <ele>281.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698722222" lon="-17.968666667">
+  <ele>276.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698750000" lon="-17.968722222">
+  <ele>277.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698777778" lon="-17.968194444">
+  <ele>292.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699027778" lon="-17.967750000">
+  <ele>278.600000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.699138889" lon="-17.967805556">
+  <ele>270.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699194444" lon="-17.968166667">
+  <ele>252.200000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.699416667" lon="-17.967833333">
+  <ele>246.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699555556" lon="-17.967805556">
+  <ele>223.400000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.699638889" lon="-17.967972222">
+  <ele>209.200000</ele>
+  <speed>0.555556</speed>
+</trkpt>
+<trkpt lat="28.699555556" lon="-17.968333333">
+  <ele>177.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699722222" lon="-17.968277778">
+  <ele>193.800000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.699777778" lon="-17.968250000">
+  <ele>181.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699805556" lon="-17.968305556">
+  <ele>175.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699805556" lon="-17.968555556">
+  <ele>179.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699916667" lon="-17.968805556">
+  <ele>168.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699916667" lon="-17.969083333">
+  <ele>155.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699861111" lon="-17.969277778">
+  <ele>124.800000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.699388889" lon="-17.969222222">
+  <ele>126.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699861111" lon="-17.969277778">
+  <ele>123.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700361111" lon="-17.969305556">
+  <ele>125.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699972222" lon="-17.969388889">
+  <ele>90.800000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.699750000" lon="-17.969583333">
+  <ele>101.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699833333" lon="-17.969916667">
+  <ele>109.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.700055556" lon="-17.970027778">
+  <ele>73.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700083333" lon="-17.970388889">
+  <ele>66.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700250000" lon="-17.970194444">
+  <ele>56.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700472222" lon="-17.970194444">
+  <ele>44.800000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.970638889">
+  <ele>44.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700083333" lon="-17.971250000">
+  <ele>22.800000</ele>
+  <speed>1.638889</speed>
+</trkpt>
+<trkpt lat="28.700555556" lon="-17.971194444">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700027778" lon="-17.971277778">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.971333333">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701166667" lon="-17.971194444">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.971055556">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700361111" lon="-17.971388889">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700500000" lon="-17.971416667">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700472222" lon="-17.971333333">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.971333333">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700500000" lon="-17.971416667">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700444444" lon="-17.971361111">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700444444" lon="-17.971416667">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700555556" lon="-17.971361111">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700416667" lon="-17.971333333">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.971305556">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700250000" lon="-17.971722222">
+  <ele>24.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700416667" lon="-17.971444444">
+  <ele>117.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700555556" lon="-17.971250000">
+  <ele>54.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700472222" lon="-17.970500000">
+  <ele>41.000000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.700527778" lon="-17.969972222">
+  <ele>45.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700638889" lon="-17.970027778">
+  <ele>40.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700666667" lon="-17.970555556">
+  <ele>45.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700944444" lon="-17.970777778">
+  <ele>43.400000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.701333333" lon="-17.970750000">
+  <ele>49.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701388889" lon="-17.970333333">
+  <ele>69.800000</ele>
+  <speed>0.750000</speed>
+</trkpt>
+<trkpt lat="28.701611111" lon="-17.970416667">
+  <ele>101.800000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.701750000" lon="-17.970472222">
+  <ele>115.200000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.701916667" lon="-17.970111111">
+  <ele>125.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.702083333" lon="-17.970472222">
+  <ele>148.800000</ele>
+  <speed>0.555556</speed>
+</trkpt>
+<trkpt lat="28.702250000" lon="-17.970666667">
+  <ele>164.800000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.702277778" lon="-17.970805556">
+  <ele>177.000000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+<trkpt lat="28.702000000" lon="-17.971222222">
+  <ele>173.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.702444444" lon="-17.971305556">
+  <ele>166.200000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.702861111" lon="-17.971500000">
+  <ele>144.400000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.702388889" lon="-17.971555556">
+  <ele>130.000000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.702583333" lon="-17.972055556">
+  <ele>131.600000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.703027778" lon="-17.972194444">
+  <ele>112.600000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.703055556" lon="-17.972444444">
+  <ele>101.200000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.702750000" lon="-17.972833333">
+  <ele>90.200000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.702750000" lon="-17.973361111">
+  <ele>72.600000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.702666667" lon="-17.973583333">
+  <ele>59.400000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.703027778" lon="-17.973583333">
+  <ele>41.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703277778" lon="-17.973138889">
+  <ele>14.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703694444" lon="-17.972861111">
+  <ele>8.800000</ele>
+  <speed>2.305556</speed>
+</trkpt>
+</trkseg>
+</trk>
+<trk>
+  <name>1-1-06</name>
+  <desc>TORRE TIME</desc>
+<number>2</number>
+<trkseg>
+<trkpt lat="28.697944444" lon="-17.949222222">
+  <ele>-4542.400000</ele>
+</trkpt>
+<trkpt lat="28.697916667" lon="-17.949250000">
+  <ele>653.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697944444" lon="-17.949250000">
+  <ele>657.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697944444" lon="-17.949222222">
+  <ele>654.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.697750000" lon="-17.949500000">
+  <ele>653.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698194444" lon="-17.949638889">
+  <ele>647.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.698638889" lon="-17.949750000">
+  <ele>646.400000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.699111111" lon="-17.949750000">
+  <ele>643.400000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.699361111" lon="-17.949277778">
+  <ele>636.800000</ele>
+  <speed>0.833333</speed>
+</trkpt>
+<trkpt lat="28.699444444" lon="-17.949805556">
+  <ele>621.800000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.699722222" lon="-17.950222222">
+  <ele>619.800000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.700138889" lon="-17.950416667">
+  <ele>618.800000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.700527778" lon="-17.950138889">
+  <ele>618.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.700611111" lon="-17.950666667">
+  <ele>615.200000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.951138889">
+  <ele>615.000000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.701277778" lon="-17.951111111">
+  <ele>624.000000</ele>
+  <speed>0.611111</speed>
+</trkpt>
+<trkpt lat="28.701027778" lon="-17.950694444">
+  <ele>623.400000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.701250000" lon="-17.950222222">
+  <ele>640.000000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.701472222" lon="-17.949750000">
+  <ele>644.400000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.701472222" lon="-17.949722222">
+  <ele>652.000000</ele>
+  <speed>0.833333</speed>
+</trkpt>
+<trkpt lat="28.701527778" lon="-17.949611111">
+  <ele>656.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701555556" lon="-17.949083333">
+  <ele>655.400000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.702027778" lon="-17.949027778">
+  <ele>665.200000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+<trkpt lat="28.701805556" lon="-17.948555556">
+  <ele>677.800000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.702055556" lon="-17.948111111">
+  <ele>684.400000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.702305556" lon="-17.947638889">
+  <ele>692.200000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.702388889" lon="-17.947111111">
+  <ele>696.200000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.702583333" lon="-17.946611111">
+  <ele>701.600000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.702777778" lon="-17.946138889">
+  <ele>712.400000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.703055556" lon="-17.945722222">
+  <ele>717.400000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.702583333" lon="-17.945666667">
+  <ele>718.400000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.702166667" lon="-17.945861111">
+  <ele>725.800000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.702000000" lon="-17.945750000">
+  <ele>752.000000</ele>
+  <speed>0.527778</speed>
+</trkpt>
+<trkpt lat="28.702472222" lon="-17.945722222">
+  <ele>745.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.702916667" lon="-17.945583333">
+  <ele>735.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.702805556" lon="-17.946083333">
+  <ele>727.600000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.702666667" lon="-17.946583333">
+  <ele>726.400000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.702972222" lon="-17.946194444">
+  <ele>710.600000</ele>
+  <speed>0.500000</speed>
+</trkpt>
+<trkpt lat="28.703250000" lon="-17.945777778">
+  <ele>727.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.703277778" lon="-17.945805556">
+  <ele>738.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703277778" lon="-17.945777778">
+  <ele>735.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.703500000" lon="-17.945305556">
+  <ele>738.800000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.703694444" lon="-17.944833333">
+  <ele>748.200000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.703944444" lon="-17.944388889">
+  <ele>754.800000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.704027778" lon="-17.943861111">
+  <ele>767.000000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.704444444" lon="-17.943638889">
+  <ele>774.000000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.704750000" lon="-17.943722222">
+  <ele>780.600000</ele>
+  <speed>0.694444</speed>
+</trkpt>
+<trkpt lat="28.705111111" lon="-17.943583333">
+  <ele>802.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.705416667" lon="-17.943194444">
+  <ele>802.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.705694444" lon="-17.942777778">
+  <ele>814.200000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.706111111" lon="-17.942527778">
+  <ele>817.400000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.705916667" lon="-17.942027778">
+  <ele>826.600000</ele>
+  <speed>0.833333</speed>
+</trkpt>
+<trkpt lat="28.705472222" lon="-17.942111111">
+  <ele>835.000000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.705111111" lon="-17.942472222">
+  <ele>841.400000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.705055556" lon="-17.941944444">
+  <ele>846.200000</ele>
+  <speed>2.250000</speed>
+</trkpt>
+<trkpt lat="28.704972222" lon="-17.941416667">
+  <ele>855.600000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.704972222" lon="-17.940888889">
+  <ele>857.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.704916667" lon="-17.940361111">
+  <ele>862.800000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.704916667" lon="-17.939833333">
+  <ele>871.000000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.705055556" lon="-17.939333333">
+  <ele>883.800000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.705111111" lon="-17.938805556">
+  <ele>890.400000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.705222222" lon="-17.938277778">
+  <ele>902.800000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.705277778" lon="-17.937750000">
+  <ele>906.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.705333333" lon="-17.937222222">
+  <ele>918.600000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.705527778" lon="-17.936750000">
+  <ele>928.200000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.705444444" lon="-17.936222222">
+  <ele>942.800000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.705500000" lon="-17.935694444">
+  <ele>947.800000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.705527778" lon="-17.935166667">
+  <ele>955.200000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.705666667" lon="-17.934666667">
+  <ele>970.800000</ele>
+  <speed>0.916667</speed>
+</trkpt>
+<trkpt lat="28.705694444" lon="-17.934138889">
+  <ele>981.800000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.705722222" lon="-17.933611111">
+  <ele>988.800000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.705694444" lon="-17.933083333">
+  <ele>1001.400000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.705444444" lon="-17.932638889">
+  <ele>1009.600000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.705277778" lon="-17.932555556">
+  <ele>1013.200000</ele>
+  <speed>1.944444</speed>
+</trkpt>
+<trkpt lat="28.705027778" lon="-17.932111111">
+  <ele>1017.200000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.704583333" lon="-17.931944444">
+  <ele>1010.600000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.704527778" lon="-17.932472222">
+  <ele>1006.000000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.704111111" lon="-17.932666667">
+  <ele>1006.000000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.703805556" lon="-17.933055556">
+  <ele>1009.200000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.703388889" lon="-17.933250000">
+  <ele>1002.400000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.703027778" lon="-17.933555556">
+  <ele>996.200000</ele>
+  <speed>0.583333</speed>
+</trkpt>
+<trkpt lat="28.702777778" lon="-17.933111111">
+  <ele>992.000000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.702583333" lon="-17.932611111">
+  <ele>978.400000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.702166667" lon="-17.932861111">
+  <ele>974.800000</ele>
+  <speed>1.666667</speed>
+</trkpt>
+<trkpt lat="28.701861111" lon="-17.933250000">
+  <ele>974.800000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.701416667" lon="-17.933361111">
+  <ele>974.400000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.700944444" lon="-17.933388889">
+  <ele>971.000000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.700833333" lon="-17.933305556">
+  <ele>969.400000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.700833333" lon="-17.933305556">
+  <ele>966.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700833333" lon="-17.933333333">
+  <ele>971.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.933166667">
+  <ele>967.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700638889" lon="-17.932638889">
+  <ele>964.800000</ele>
+  <speed>0.666667</speed>
+</trkpt>
+<trkpt lat="28.700666667" lon="-17.931805556">
+  <ele>952.800000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.700555556" lon="-17.932861111">
+  <ele>1045.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700416667" lon="-17.933916667">
+  <ele>952.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700527778" lon="-17.933222222">
+  <ele>829.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.932250000">
+  <ele>892.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700611111" lon="-17.933000000">
+  <ele>1031.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700500000" lon="-17.933555556">
+  <ele>938.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700611111" lon="-17.932833333">
+  <ele>868.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.931888889">
+  <ele>955.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700638889" lon="-17.932722222">
+  <ele>1050.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700833333" lon="-17.931972222">
+  <ele>948.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700722222" lon="-17.932694444">
+  <ele>1025.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701416667" lon="-17.932055556">
+  <ele>957.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.932583333">
+  <ele>952.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700388889" lon="-17.932333333">
+  <ele>942.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699972222" lon="-17.932111111">
+  <ele>943.800000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.698750000" lon="-17.932194444">
+  <ele>938.800000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.698388889" lon="-17.931861111">
+  <ele>939.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.698194444" lon="-17.932333333">
+  <ele>945.000000</ele>
+  <speed>1.805556</speed>
+</trkpt>
+<trkpt lat="28.697861111" lon="-17.932694444">
+  <ele>950.000000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.697388889" lon="-17.932666667">
+  <ele>961.200000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.696916667" lon="-17.932666667">
+  <ele>968.800000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.696638889" lon="-17.932250000">
+  <ele>971.200000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.696444444" lon="-17.931777778">
+  <ele>967.400000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.696138889" lon="-17.931388889">
+  <ele>966.600000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.696111111" lon="-17.930861111">
+  <ele>961.400000</ele>
+  <speed>0.722222</speed>
+</trkpt>
+<trkpt lat="28.696055556" lon="-17.930333333">
+  <ele>968.800000</ele>
+  <speed>0.750000</speed>
+</trkpt>
+<trkpt lat="28.695277778" lon="-17.931305556">
+  <ele>968.000000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.696388889" lon="-17.931111111">
+  <ele>967.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.694972222" lon="-17.930861111">
+  <ele>967.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.694861111" lon="-17.930361111">
+  <ele>937.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.694694444" lon="-17.929861111">
+  <ele>1009.200000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.694166667" lon="-17.930305556">
+  <ele>1010.000000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+<trkpt lat="28.693694444" lon="-17.930277778">
+  <ele>1009.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.693805556" lon="-17.929777778">
+  <ele>996.800000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.693444444" lon="-17.929444444">
+  <ele>1000.600000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.693555556" lon="-17.928944444">
+  <ele>1013.000000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.693500000" lon="-17.928416667">
+  <ele>1013.400000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.692805556" lon="-17.928000000">
+  <ele>1018.200000</ele>
+  <speed>0.555556</speed>
+</trkpt>
+<trkpt lat="28.692750000" lon="-17.927472222">
+  <ele>1017.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.692305556" lon="-17.927638889">
+  <ele>1029.000000</ele>
+  <speed>0.888889</speed>
+</trkpt>
+<trkpt lat="28.692250000" lon="-17.928166667">
+  <ele>1028.600000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.691805556" lon="-17.928333333">
+  <ele>1028.600000</ele>
+  <speed>1.722222</speed>
+</trkpt>
+<trkpt lat="28.691444444" lon="-17.928638889">
+  <ele>1034.400000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.691305556" lon="-17.928138889">
+  <ele>1034.400000</ele>
+  <speed>1.583333</speed>
+</trkpt>
+<trkpt lat="28.690861111" lon="-17.928250000">
+  <ele>1034.200000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.690527778" lon="-17.927888889">
+  <ele>1037.000000</ele>
+  <speed>1.583333</speed>
+</trkpt>
+<trkpt lat="28.690055556" lon="-17.927916667">
+  <ele>1032.000000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.689638889" lon="-17.927694444">
+  <ele>1024.800000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.689277778" lon="-17.927333333">
+  <ele>1025.000000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.688833333" lon="-17.927194444">
+  <ele>1022.600000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.688916667" lon="-17.926916667">
+  <ele>1023.000000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.689277778" lon="-17.926611111">
+  <ele>1039.800000</ele>
+  <speed>0.833333</speed>
+</trkpt>
+<trkpt lat="28.689361111" lon="-17.926527778">
+  <ele>1056.600000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.689388889" lon="-17.926500000">
+  <ele>1061.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.689333333" lon="-17.926527778">
+  <ele>1065.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.689361111" lon="-17.926527778">
+  <ele>1056.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.689333333" lon="-17.926527778">
+  <ele>1060.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.689361111" lon="-17.926527778">
+  <ele>1057.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.689194444" lon="-17.926638889">
+  <ele>1058.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.688861111" lon="-17.926944444">
+  <ele>1047.800000</ele>
+  <speed>0.666667</speed>
+</trkpt>
+<trkpt lat="28.688888889" lon="-17.927277778">
+  <ele>1045.200000</ele>
+  <speed>0.527778</speed>
+</trkpt>
+<trkpt lat="28.689333333" lon="-17.927361111">
+  <ele>1049.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.689694444" lon="-17.927666667">
+  <ele>1030.600000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.690111111" lon="-17.927916667">
+  <ele>1027.600000</ele>
+  <speed>1.638889</speed>
+</trkpt>
+<trkpt lat="28.690583333" lon="-17.927944444">
+  <ele>1033.800000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.690888889" lon="-17.928333333">
+  <ele>1035.600000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.691305556" lon="-17.928111111">
+  <ele>1030.400000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.691722222" lon="-17.928305556">
+  <ele>1029.600000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.692166667" lon="-17.928444444">
+  <ele>1029.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.692222222" lon="-17.927888889">
+  <ele>1029.600000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.692583333" lon="-17.927555556">
+  <ele>1030.200000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.692888889" lon="-17.927972222">
+  <ele>1024.200000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.693222222" lon="-17.928333333">
+  <ele>1016.600000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.693611111" lon="-17.928611111">
+  <ele>1016.600000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.693500000" lon="-17.929111111">
+  <ele>1016.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.693777778" lon="-17.929527778">
+  <ele>1020.800000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.693722222" lon="-17.930055556">
+  <ele>1019.400000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.693972222" lon="-17.930527778">
+  <ele>1019.400000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.693444444" lon="-17.930444444">
+  <ele>1018.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.694222222" lon="-17.930388889">
+  <ele>1018.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.694583333" lon="-17.930055556">
+  <ele>1018.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.694861111" lon="-17.930472222">
+  <ele>1000.200000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.695250000" lon="-17.930750000">
+  <ele>1004.000000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.695416667" lon="-17.931250000">
+  <ele>1005.600000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.695777778" lon="-17.930944444">
+  <ele>1004.800000</ele>
+  <speed>0.805556</speed>
+</trkpt>
+<trkpt lat="28.695972222" lon="-17.930444444">
+  <ele>987.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.696361111" lon="-17.930722222">
+  <ele>977.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.696250000" lon="-17.931555556">
+  <ele>977.600000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.696611111" lon="-17.931888889">
+  <ele>962.400000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.696722222" lon="-17.932388889">
+  <ele>962.600000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.697027778" lon="-17.932777778">
+  <ele>962.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.697500000" lon="-17.932833333">
+  <ele>966.800000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.697944444" lon="-17.932750000">
+  <ele>968.600000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.698277778" lon="-17.932388889">
+  <ele>962.200000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.698472222" lon="-17.932055556">
+  <ele>954.400000</ele>
+  <speed>0.666667</speed>
+</trkpt>
+<trkpt lat="28.698722222" lon="-17.932222222">
+  <ele>941.200000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.699111111" lon="-17.931944444">
+  <ele>946.000000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.699555556" lon="-17.931861111">
+  <ele>933.800000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.700000000" lon="-17.932055556">
+  <ele>933.600000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.700333333" lon="-17.932416667">
+  <ele>937.600000</ele>
+  <speed>1.638889</speed>
+</trkpt>
+<trkpt lat="28.700888889" lon="-17.932416667">
+  <ele>930.800000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.700777778" lon="-17.932666667">
+  <ele>933.200000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700750000" lon="-17.932722222">
+  <ele>937.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700555556" lon="-17.933194444">
+  <ele>943.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.933277778">
+  <ele>928.800000</ele>
+  <speed>0.611111</speed>
+</trkpt>
+<trkpt lat="28.700916667" lon="-17.933361111">
+  <ele>944.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700888889" lon="-17.933333333">
+  <ele>959.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700805556" lon="-17.933361111">
+  <ele>957.000000</ele>
+  <speed>0.638889</speed>
+</trkpt>
+<trkpt lat="28.701222222" lon="-17.933583333">
+  <ele>963.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.701666667" lon="-17.933416667">
+  <ele>967.800000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.702083333" lon="-17.933222222">
+  <ele>961.400000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.702388889" lon="-17.932833333">
+  <ele>960.800000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.702805556" lon="-17.933083333">
+  <ele>964.000000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.702944444" lon="-17.933583333">
+  <ele>964.800000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.703194444" lon="-17.934027778">
+  <ele>967.800000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.703472222" lon="-17.934444444">
+  <ele>975.400000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.703833333" lon="-17.934138889">
+  <ele>971.000000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.703833333" lon="-17.934750000">
+  <ele>961.800000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.704027778" lon="-17.935222222">
+  <ele>958.400000</ele>
+  <speed>1.666667</speed>
+</trkpt>
+<trkpt lat="28.704111111" lon="-17.935750000">
+  <ele>952.800000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+<trkpt lat="28.704361111" lon="-17.936194444">
+  <ele>945.400000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.704777778" lon="-17.936388889">
+  <ele>940.800000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.704472222" lon="-17.936861111">
+  <ele>938.800000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.704000000" lon="-17.936861111">
+  <ele>911.000000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.703833333" lon="-17.936361111">
+  <ele>918.800000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.703583333" lon="-17.936805556">
+  <ele>920.400000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.703305556" lon="-17.937222222">
+  <ele>914.800000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.702861111" lon="-17.937361111">
+  <ele>911.200000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.702500000" lon="-17.937694444">
+  <ele>900.200000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.702111111" lon="-17.937972222">
+  <ele>896.000000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.701638889" lon="-17.937972222">
+  <ele>891.600000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.701194444" lon="-17.937861111">
+  <ele>884.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700888889" lon="-17.937472222">
+  <ele>882.200000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.701000000" lon="-17.936972222">
+  <ele>883.000000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.700666667" lon="-17.936611111">
+  <ele>879.600000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.700194444" lon="-17.936694444">
+  <ele>880.000000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.699722222" lon="-17.936694444">
+  <ele>883.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699444444" lon="-17.937111111">
+  <ele>885.200000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.699000000" lon="-17.937194444">
+  <ele>870.200000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.698555556" lon="-17.937027778">
+  <ele>860.400000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.698138889" lon="-17.937277778">
+  <ele>863.200000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.698583333" lon="-17.937388889">
+  <ele>856.400000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.698777778" lon="-17.937861111">
+  <ele>843.400000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.698944444" lon="-17.938361111">
+  <ele>839.000000</ele>
+  <speed>1.527778</speed>
+</trkpt>
+<trkpt lat="28.699388889" lon="-17.938277778">
+  <ele>833.200000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.699750000" lon="-17.937944444">
+  <ele>828.600000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.699805556" lon="-17.938472222">
+  <ele>828.600000</ele>
+  <speed>1.611111</speed>
+</trkpt>
+<trkpt lat="28.699888889" lon="-17.939000000">
+  <ele>827.400000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.700000000" lon="-17.939500000">
+  <ele>820.600000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.700138889" lon="-17.940000000">
+  <ele>806.600000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.700111111" lon="-17.940527778">
+  <ele>810.800000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.699972222" lon="-17.941027778">
+  <ele>806.200000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.699916667" lon="-17.941555556">
+  <ele>805.000000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.700138889" lon="-17.942055556">
+  <ele>802.200000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.942138889">
+  <ele>797.200000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.700833333" lon="-17.942583333">
+  <ele>793.600000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.700916667" lon="-17.943111111">
+  <ele>785.800000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.700750000" lon="-17.943611111">
+  <ele>777.400000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.700472222" lon="-17.944027778">
+  <ele>778.000000</ele>
+  <speed>1.305556</speed>
+</trkpt>
+<trkpt lat="28.700361111" lon="-17.944527778">
+  <ele>776.200000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.700333333" lon="-17.945055556">
+  <ele>780.200000</ele>
+  <speed>1.666667</speed>
+</trkpt>
+<trkpt lat="28.700444444" lon="-17.945555556">
+  <ele>785.400000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.700861111" lon="-17.945750000">
+  <ele>782.200000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.701305556" lon="-17.945638889">
+  <ele>773.600000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.701555556" lon="-17.945194444">
+  <ele>772.000000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.701888889" lon="-17.945555556">
+  <ele>777.800000</ele>
+  <speed>1.472222</speed>
+</trkpt>
+<trkpt lat="28.702250000" lon="-17.945861111">
+  <ele>759.600000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.702666667" lon="-17.945666667">
+  <ele>753.600000</ele>
+  <speed>1.388889</speed>
+</trkpt>
+<trkpt lat="28.702750000" lon="-17.946194444">
+  <ele>754.800000</ele>
+  <speed>1.444444</speed>
+</trkpt>
+<trkpt lat="28.702527778" lon="-17.946666667">
+  <ele>742.600000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.702333333" lon="-17.947138889">
+  <ele>735.800000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.702250000" lon="-17.947666667">
+  <ele>727.000000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.702000000" lon="-17.948111111">
+  <ele>722.600000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.701750000" lon="-17.948555556">
+  <ele>719.400000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.702083333" lon="-17.948916667">
+  <ele>710.400000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.701611111" lon="-17.948972222">
+  <ele>688.800000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.701500000" lon="-17.949472222">
+  <ele>677.400000</ele>
+  <speed>1.166667</speed>
+</trkpt>
+<trkpt lat="28.701361111" lon="-17.949972222">
+  <ele>671.600000</ele>
+  <speed>0.861111</speed>
+</trkpt>
+<trkpt lat="28.701111111" lon="-17.950416667">
+  <ele>664.200000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.701138889" lon="-17.950944444">
+  <ele>655.200000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.700777778" lon="-17.950944444">
+  <ele>648.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.700583333" lon="-17.950472222">
+  <ele>622.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.700138889" lon="-17.950305556">
+  <ele>615.600000</ele>
+  <speed>1.055556</speed>
+</trkpt>
+<trkpt lat="28.699750000" lon="-17.950027778">
+  <ele>620.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.699416667" lon="-17.949666667">
+  <ele>618.000000</ele>
+  <speed>1.555556</speed>
+</trkpt>
+<trkpt lat="28.698972222" lon="-17.949777778">
+  <ele>620.800000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.698500000" lon="-17.949722222">
+  <ele>624.400000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.698055556" lon="-17.949555556">
+  <ele>626.200000</ele>
+  <speed>0.972222</speed>
+</trkpt>
+<trkpt lat="28.697861111" lon="-17.949083333">
+  <ele>634.400000</ele>
+  <speed>1.000000</speed>
+</trkpt>
+</trkseg>
+</trk>
+<trk>
+  <name>2-1-06</name>
+  <desc>TAZACORTE</desc>
+<number>3</number>
+<trkseg>
+<trkpt lat="28.663388889" lon="-17.942472222">
+  <ele>-4542.400000</ele>
+</trkpt>
+<trkpt lat="28.663444444" lon="-17.942444444">
+  <ele>518.600000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.663444444" lon="-17.942444444">
+  <ele>525.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.663805556" lon="-17.942500000">
+  <ele>530.400000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.663527778" lon="-17.942916667">
+  <ele>530.800000</ele>
+  <speed>1.111111</speed>
+</trkpt>
+<trkpt lat="28.663055556" lon="-17.942916667">
+  <ele>507.000000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.662583333" lon="-17.942916667">
+  <ele>509.200000</ele>
+  <speed>1.361111</speed>
+</trkpt>
+<trkpt lat="28.662138889" lon="-17.943027778">
+  <ele>507.800000</ele>
+  <speed>2.638889</speed>
+</trkpt>
+<trkpt lat="28.661694444" lon="-17.943194444">
+  <ele>495.200000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.661250000" lon="-17.943333333">
+  <ele>492.200000</ele>
+  <speed>1.333333</speed>
+</trkpt>
+<trkpt lat="28.660805556" lon="-17.943472222">
+  <ele>486.200000</ele>
+  <speed>1.194444</speed>
+</trkpt>
+<trkpt lat="28.660361111" lon="-17.943583333">
+  <ele>478.800000</ele>
+  <speed>1.638889</speed>
+</trkpt>
+<trkpt lat="28.659888889" lon="-17.943555556">
+  <ele>464.400000</ele>
+  <speed>0.944444</speed>
+</trkpt>
+<trkpt lat="28.659638889" lon="-17.943500000">
+  <ele>454.200000</ele>
+  <speed>1.027778</speed>
+</trkpt>
+<trkpt lat="28.659250000" lon="-17.943777778">
+  <ele>457.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.658861111" lon="-17.944055556">
+  <ele>432.400000</ele>
+  <speed>0.777778</speed>
+</trkpt>
+<trkpt lat="28.658472222" lon="-17.944333333">
+  <ele>415.000000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="28.658333333" lon="-17.944833333">
+  <ele>406.000000</ele>
+  <speed>1.250000</speed>
+</trkpt>
+<trkpt lat="28.658777778" lon="-17.945000000">
+  <ele>392.600000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.658916667" lon="-17.945500000">
+  <ele>390.200000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.658555556" lon="-17.945833333">
+  <ele>377.000000</ele>
+  <speed>1.277778</speed>
+</trkpt>
+<trkpt lat="28.658194444" lon="-17.946194444">
+  <ele>368.800000</ele>
+  <speed>1.138889</speed>
+</trkpt>
+<trkpt lat="28.657916667" lon="-17.946611111">
+  <ele>351.400000</ele>
+  <speed>1.416667</speed>
+</trkpt>
+<trkpt lat="28.657611111" lon="-17.947000000">
+  <ele>341.000000</ele>
+  <speed>1.222222</speed>
+</trkpt>
+<trkpt lat="28.657194444" lon="-17.947194444">
+  <ele>331.400000</ele>
+  <speed>1.083333</speed>
+</trkpt>
+<trkpt lat="28.652027778" lon="-17.946500000">
+  <ele>328.000000</ele>
+  <speed>1.500000</speed>
+</trkpt>
+<trkpt lat="28.649722222" lon="-17.946305556">
+  <ele>327.800000</ele>
+  <speed>0.000000</speed>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
diff --git a/reference/alantrl.trl b/reference/alantrl.trl
new file mode 100644 (file)
index 0000000..c0f94ab
Binary files /dev/null and b/reference/alantrl.trl differ
diff --git a/reference/alanwpr.gpx b/reference/alanwpr.gpx
new file mode 100644 (file)
index 0000000..321d059
--- /dev/null
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+ version="1.0"
+creator="GPSBabel - http://www.gpsbabel.org"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns="http://www.topografix.com/GPX/1/0"
+xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="28.455250000" minlon="-17.980111111" maxlat="47.650694444" maxlon="9.483111111"/>
+<wpt lat="47.650694444" lon="9.483111111">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Home</name>
+  <cmt>Sweet_Home</cmt>
+  <desc>Sweet_Home</desc>
+</wpt>
+<wpt lat="28.620472222" lon="-17.752805556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Airport</name>
+  <cmt>Santa_Cruz</cmt>
+  <desc>Santa_Cruz</desc>
+</wpt>
+<wpt lat="28.830361111" lon="-17.803222222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GAS001</name>
+  <cmt>Barlovento</cmt>
+  <desc>Barlovento</desc>
+</wpt>
+<wpt lat="28.763444444" lon="-17.977722222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GAS002</name>
+  <cmt>Puntagorda</cmt>
+  <desc>Puntagorda</desc>
+</wpt>
+<wpt lat="28.766000000" lon="-17.980111111">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Police</name>
+  <cmt>Puntagorda</cmt>
+  <desc>Puntagorda</desc>
+</wpt>
+<wpt lat="28.689583333" lon="-17.767472222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>SMrkt01</name>
+  <cmt>Santa_Cruz</cmt>
+  <desc>Santa_Cruz</desc>
+</wpt>
+<wpt lat="28.651083333" lon="-17.881027778">
+<time>2005-12-27T16:09:39Z</time>
+  <name>SMrkt02</name>
+  <cmt>El_Paso</cmt>
+  <desc>El_Paso</desc>
+</wpt>
+<wpt lat="28.778305556" lon="-17.906250000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>PARK01</name>
+  <cmt>SmallParking</cmt>
+  <desc>SmallParking</desc>
+</wpt>
+<wpt lat="28.791527778" lon="-17.799361111">
+<time>2005-12-27T16:09:39Z</time>
+  <name>PARK02</name>
+  <cmt>Tilos_Trail</cmt>
+  <desc>Tilos_Trail</desc>
+</wpt>
+<wpt lat="28.780388889" lon="-17.962944444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>PARK03</name>
+  <cmt>Las_Tricia</cmt>
+  <desc>Las_Tricia</desc>
+</wpt>
+<wpt lat="28.811111111" lon="-17.805222222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Barloven</name>
+  <cmt>Barlovento</cmt>
+  <desc>Barlovento</desc>
+</wpt>
+<wpt lat="28.692500000" lon="-17.876888889">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Bejenado</name>
+  <cmt>Bejenado</cmt>
+  <desc>Bejenado</desc>
+</wpt>
+<wpt lat="28.697916667" lon="-17.856750000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Cumbreci</name>
+  <cmt>Cumbrecita</cmt>
+  <desc>Cumbrecita</desc>
+</wpt>
+<wpt lat="28.578805556" lon="-17.838083333">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Durazner</name>
+  <cmt>Duraznero</cmt>
+  <desc>Duraznero</desc>
+</wpt>
+<wpt lat="28.614916667" lon="-17.836777778">
+<time>2005-12-27T16:09:39Z</time>
+  <name>El_Pilar</name>
+  <cmt>El_Pilar</cmt>
+  <desc>El_Pilar</desc>
+</wpt>
+<wpt lat="28.689138889" lon="-17.870083333">
+<time>2005-12-27T16:09:39Z</time>
+  <name>El_Rodeo</name>
+  <cmt>El_Rodeo</cmt>
+  <desc>El_Rodeo</desc>
+</wpt>
+<wpt lat="28.455361111" lon="-17.843166667">
+<time>2005-12-27T16:09:39Z</time>
+  <name>FaroFuen</name>
+  <cmt>Fuencaliente</cmt>
+  <desc>Fuencaliente</desc>
+</wpt>
+<wpt lat="28.730166667" lon="-17.813666667">
+<time>2005-12-27T16:09:39Z</time>
+  <name>F.Olen</name>
+  <cmt>Fuente_Olen</cmt>
+  <desc>Fuente_Olen</desc>
+</wpt>
+<wpt lat="28.583250000" lon="-17.837527778">
+<time>2005-12-27T16:09:39Z</time>
+  <name>HoyoNegr</name>
+  <cmt>Hoyo_Negro</cmt>
+  <desc>Hoyo_Negro</desc>
+</wpt>
+<wpt lat="28.754305556" lon="-17.884805556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Muchacho</name>
+  <cmt>Rq.Muchachos</cmt>
+  <desc>Rq.Muchachos</desc>
+</wpt>
+<wpt lat="28.609750000" lon="-17.839944444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>M.Birigo</name>
+  <cmt>M_Birigoyo</cmt>
+  <desc>M_Birigoyo</desc>
+</wpt>
+<wpt lat="28.629027778" lon="-17.802027778">
+<time>2005-12-27T16:09:39Z</time>
+  <name>S.Isidro</name>
+  <cmt>San_Isidro</cmt>
+  <desc>San_Isidro</desc>
+</wpt>
+<wpt lat="28.688250000" lon="-17.761611111">
+<time>2005-12-27T16:09:39Z</time>
+  <name>S.Maria</name>
+  <cmt>Santa_Maria</cmt>
+  <desc>Santa_Maria</desc>
+</wpt>
+<wpt lat="28.647277778" lon="-17.944055556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Tazacort</name>
+  <cmt>Tazacorte</cmt>
+  <desc>Tazacorte</desc>
+</wpt>
+<wpt lat="28.692805556" lon="-17.924444444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>T.d.Time</name>
+  <cmt>Tor_del_Time</cmt>
+  <desc>Tor_del_Time</desc>
+</wpt>
+<wpt lat="28.802388889" lon="-17.906944444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Zarza</name>
+  <cmt>La_Zarza</cmt>
+  <desc>La_Zarza</desc>
+</wpt>
+<wpt lat="28.801638889" lon="-17.908722222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>Zarzita</name>
+  <cmt>La_Zarzita</cmt>
+  <desc>La_Zarzita</desc>
+</wpt>
+<wpt lat="28.723027778" lon="-17.875583333">
+<time>2005-12-27T16:09:39Z</time>
+  <name>SRVCENTR</name>
+  <cmt>Servicecentr</cmt>
+  <desc>Servicecentr</desc>
+</wpt>
+<wpt lat="28.501916667" lon="-17.843888889">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TGR130</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.688777778" lon="-17.927250000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TGR131</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.622972222" lon="-17.844805556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TPRLP14</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.562611111" lon="-17.836833333">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TPRLP15</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.587416667" lon="-17.837694444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TPRLP16</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.619361111" lon="-17.858638889">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLEP103</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.603194444" lon="-17.846388889">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLEP107</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.601944444" lon="-17.880944444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLEP107</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.525138889" lon="-17.837555556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLFU110</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.536055556" lon="-17.842666667">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLFU111</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.767166667" lon="-17.832916667">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLSAS30</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.703972222" lon="-17.925750000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLTJ71</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.702138889" lon="-17.951472222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>TSLTJ71a</name>
+  <cmt>Trailhead</cmt>
+  <desc>Trailhead</desc>
+</wpt>
+<wpt lat="28.561555556" lon="-17.836500000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GC7CF</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.518166667" lon="-17.834250000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCN1TQ</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.603000000" lon="-17.877250000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCNXY8</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.622666667" lon="-17.848777778">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCHT8C</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.480750000" lon="-17.856500000">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCNQXK</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.653916667" lon="-17.852722222">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCD098</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.455250000" lon="-17.843555556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCM6N0</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.668027778" lon="-17.831361111">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GC405B</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.651138889" lon="-17.946194444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCD096</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.692055556" lon="-17.875194444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCNXKV</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.703805556" lon="-17.845555556">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCNXMD</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.710027778" lon="-17.954611111">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GCHND9</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.766861111" lon="-17.833194444">
+<time>2005-12-27T16:09:39Z</time>
+  <name>GC405C</name>
+  <cmt>Geocache</cmt>
+  <desc>Geocache</desc>
+</wpt>
+<wpt lat="28.698000000" lon="-17.949055556">
+<time>2005-12-29T10:41:43Z</time>
+  <name>FH-HAUS</name>
+</wpt>
+<wpt lat="28.696750000" lon="-17.950194444">
+<time>2005-12-29T11:01:17Z</time>
+  <name>FH-DRIVE</name>
+</wpt>
+<wpt lat="28.710055556" lon="-17.954638889">
+<time>2005-12-31T10:31:52Z</time>
+  <name>GCHND9-1</name>
+</wpt>
+<wpt lat="28.710944444" lon="-17.955277778">
+<time>2005-12-31T10:31:52Z</time>
+  <name>GCHND9-2</name>
+</wpt>
+<wpt lat="28.707222222" lon="-17.950888889">
+<time>2005-12-31T10:31:52Z</time>
+  <name>GCHND9-3</name>
+</wpt>
+<wpt lat="28.722111111" lon="-17.979694444">
+<time>2006-01-03T13:46:38Z</time>
+  <name>PL VETA</name>
+  <cmt>PLAYA VETA</cmt>
+  <desc>PLAYA VETA</desc>
+</wpt>
+<rte>
+  <name>GCHND9</name>
+  <rtept lat="28.710027778" lon="-17.954611111">
+<time>2005-12-27T16:09:39Z</time>
+    <name>GCHND9</name>
+    <cmt>Geocache</cmt>
+    <desc>Geocache</desc>
+  </rtept>
+  <rtept lat="28.710055556" lon="-17.954638889">
+<time>2005-12-31T10:31:52Z</time>
+    <name>GCHND9-1</name>
+  </rtept>
+  <rtept lat="28.710944444" lon="-17.955277778">
+<time>2005-12-31T10:31:52Z</time>
+    <name>GCHND9-2</name>
+  </rtept>
+  <rtept lat="28.707222222" lon="-17.950888889">
+<time>2005-12-31T10:31:52Z</time>
+    <name>GCHND9-3</name>
+  </rtept>
+</rte>
+</gpx>
diff --git a/reference/alanwpr.wpr b/reference/alanwpr.wpr
new file mode 100644 (file)
index 0000000..ecada54
Binary files /dev/null and b/reference/alanwpr.wpr differ
index f51bfd4514d7572a26e37ea06d46498cb3cd8f55..c18253f568b527b2a2f73ed06d78de527f6a93fe 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="37.007446289" minlon ="-13.823547363" maxlat="65.522460938" maxlon="18.424072266" />
+<bounds minlat="37.007446289" minlon="-13.823547363" maxlat="65.522460938" maxlon="18.424072266"/>
 <wpt lat="50.738296509" lon="12.683029175">
 <time>2005-07-14T10:12:49Z</time>
   <name>01</name>
@@ -110,13 +110,13 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <name>X1</name>
   <cmt>žðÉéÀàÈèÙùÂâÊêÎîÄäËëÖöÜüÆæÅ娸ÇçÑñ²³½É×</cmt>
   <desc>žðÉéÀàÈèÙùÂâÊêÎîÄäËëÖöÜüÆæÅ娸ÇçÑñ²³½É×</desc>
-  <sym>Diamond, Blue</sym>
+  <sym>Block, Blue</sym>
 </wpt>
 <wpt lat="50.497970581" lon="13.027725220">
 <time>2005-07-14T11:18:06Z</time>
   <name>X2</name>
   <cmt>žðÉéÀàÈèÙùÂâÊêÎîÄäËëÖöÜüÆæÅ娸ÇçÑñ²³½É×</cmt>
   <desc>žðÉéÀàÈèÙùÂâÊêÎîÄäËëÖöÜüÆæÅ娸ÇçÑñ²³½É×</desc>
-  <sym>Diamond, Blue</sym>
+  <sym>Block, Blue</sym>
 </wpt>
 </gpx>
index de4fac5997d16a20c7916adfbb90d0dcb1bc8804..86bab53b110762b213ed32470a2012190ed5be91 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="34.019184000" minlon ="-122.605838000" maxlat="37.819339000" maxlon="-120.438209000" />
+<bounds minlat="34.019184000" minlon="-122.605838000" maxlat="37.819339000" maxlon="-120.438209000"/>
 <wpt lat="37.229349000" lon="-122.441589000">
 <time>2004-11-05T21:13:00Z</time>
   <name>PESCDR01</name>
index d5a7be89e0e48f84124d145cbf8849d21403b97e..b9385cbde7032a8890712b880c2060355ce86cd1 100644 (file)
                </Marks>
                <Name>Into The Bay</Name>
        </Route>
-       <Mark created="20041105T170909Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T170909Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>37.763290 N 122.282580 W</Position>
                <Name>SFBALBAY</Name>
        </Mark>
-       <Mark created="20041105T170910Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T170910Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>37.751613 N 122.339028 W</Position>
                <Name>SFBAY001</Name>
        </Mark>
-       <Mark created="20041105T170913Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T170913Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>37.817420 N 122.394305 W</Position>
                <Name>SFBAY002</Name>
        </Mark>
-       <Mark created="20041105T170916Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T170916Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>37.819339 N 122.478302 W</Position>
                <Name>SFGGBRDG</Name>
        </Mark>
-       <Mark created="20041105T170920Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T170920Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>37.773033 N 122.605838 W</Position>
                <Name>SFCHNL01</Name>
        </Mark>
-       <Mark created="20041105T170926Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T170926Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>37.518860 N 122.529914 W</Position>
                <Name>HMCOLREF</Name>
        </Mark>
-       <Mark created="20041105T170927Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T170927Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>37.482348 N 122.507704 W</Position>
                <Name>HMPILL01</Name>
        </Mark>
-       <Mark created="20041105T211624Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T211624Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
                <Position>37.475062 N 122.488531 W</Position>
                <Name>HMPILLPT</Name>
        </Mark>
-       <Mark created="20041105T170929Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T170929Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>37.476448 N 122.475800 W</Position>
                <Name>HMPILL02</Name>
        </Mark>
-       <Mark created="20041105T170930Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T170930Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>37.495102 N 122.483927 W</Position>
                <Name>HMPILL03</Name>
        </Mark>
-       <Mark created="20041105T211300Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T211300Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>37.229349 N 122.441589 W</Position>
                <Name>PESCDR01</Name>
        </Mark>
-       <Mark created="20041105T211324Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T211324Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>37.183397 N 122.411904 W</Position>
                <Name>PIGEON01</Name>
        </Mark>
-       <Mark created="20041105T211341Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T211341Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>37.090736 N 122.348775 W</Position>
                <Name>ANONUV01</Name>
        </Mark>
-       <Mark created="20041105T211409Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T211409Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>36.929502 N 122.113725 W</Position>
                <Name>SCRUZ01</Name>
        </Mark>
-       <Mark created="20041105T211416Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T211416Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>36.934235 N 122.022130 W</Position>
                <Name>SCRUZ02</Name>
        </Mark>
-       <Mark created="20041105T211420Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T211420Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>36.960666 N 122.024734 W</Position>
                <Name>SCRUZENT</Name>
        </Mark>
-       <Mark created="20041105T212422Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T212422Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>36.581344 N 121.995411 W</Position>
                <Name>CYPRSSPT</Name>
        </Mark>
-       <Mark created="20041105T212438Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T212438Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>36.301110 N 121.919097 W</Position>
                <Name>PTSUR</Name>
        </Mark>
-       <Mark created="20041105T212515Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T212515Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>36.238177 N 121.855209 W</Position>
                <Name>COOPERPT</Name>
        </Mark>
-       <Mark created="20041105T212526Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T212526Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>36.225175 N 121.801314 W</Position>
                <Name>PFEIFENT</Name>
        </Mark>
-       <Mark created="20041105T212531Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T212531Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>36.230449 N 121.797444 W</Position>
                <Name>PFEIFANC</Name>
        </Mark>
-       <Mark created="20041105T212826Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T212826Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>35.879801 N 121.498947 W</Position>
                <Name>SANMRT01</Name>
        </Mark>
-       <Mark created="20041105T212833Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T212833Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>35.652801 N 121.308485 W</Position>
                <Name>PDRSBLNC</Name>
        </Mark>
-       <Mark created="20041105T212850Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T212850Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
                <Position>35.623297 N 121.185920 W</Position>
                <Name>SNSMNENT</Name>
        </Mark>
-       <Mark created="20041105T212853Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T212853Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>35.640478 N 121.183772 W</Position>
                <Name>SNSMNANC</Name>
        </Mark>
-       <Mark created="20041105T213618Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T213618Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>35.572353 N 121.152797 W</Position>
                <Name>CAMBRIA</Name>
        </Mark>
-       <Mark created="20041105T213626Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T213626Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>35.449214 N 121.020825 W</Position>
                <Name>PTESTERO</Name>
        </Mark>
-       <Mark created="20041105T213635Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T213635Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>35.216602 N 120.928391 W</Position>
                <Name>PTBUCHON</Name>
        </Mark>
-       <Mark created="20041105T213642Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T213642Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>34.883361 N 120.684631 W</Position>
                <Name>PTSAL01</Name>
        </Mark>
-       <Mark created="20041105T213647Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T213647Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>34.884641 N 120.652026 W</Position>
                <Name>PTSALENT</Name>
        </Mark>
-       <Mark created="20041105T213704Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T213704Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>34.896555 N 120.649124 W</Position>
                <Name>PTSALANC</Name>
        </Mark>
-       <Mark created="20041105T213949Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T213949Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>34.758180 N 120.642516 W</Position>
                <Name>PURSMAPT</Name>
        </Mark>
-       <Mark created="20041105T213954Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T213954Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>34.572579 N 120.663636 W</Position>
                <Name>PTARGLLO</Name>
        </Mark>
-       <Mark created="20041105T214005Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T214005Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>34.113844 N 120.492630 W</Position>
                <Name>SANMGL01</Name>
        </Mark>
-       <Mark created="20041105T214044Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T214044Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>34.029483 N 120.471409 W</Position>
                <Name>SANMGL02</Name>
        </Mark>
-       <Mark created="20041105T214048Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T214048Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>34.019184 N 120.444197 W</Position>
                <Name>SANMGL03</Name>
        </Mark>
-       <Mark created="20041105T214057Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T214057Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>34.023478 N 120.438209 W</Position>
                <Name>ADCOVENT</Name>
        </Mark>
-       <Mark created="20041105T214059Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T214059Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>34.028615 N 120.439696 W</Position>
                <Name>ADCOVANC</Name>
        </Mark>
index ae02d82d8e023cf6fa3430d5f7756a5ffb8d11f5..86bab53b110762b213ed32470a2012190ed5be91 100644 (file)
@@ -6,61 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="34.019184000" minlon ="-122.605838000" maxlat="37.819339000" maxlon="-120.438209000" />
-<wpt lat="37.763290000" lon="-122.282580000">
-<time>2004-11-05T17:09:09Z</time>
-  <name>SFBALBAY</name>
-  <cmt>SFBALBAY</cmt>
-  <desc>SFBALBAY</desc>
-</wpt>
-<wpt lat="37.751613000" lon="-122.339028000">
-<time>2004-11-05T17:09:10Z</time>
-  <name>SFBAY001</name>
-  <cmt>SFBAY001</cmt>
-  <desc>SFBAY001</desc>
-</wpt>
-<wpt lat="37.817420000" lon="-122.394305000">
-<time>2004-11-05T17:09:13Z</time>
-  <name>SFBAY002</name>
-  <cmt>SFBAY002</cmt>
-  <desc>SFBAY002</desc>
-</wpt>
-<wpt lat="37.819339000" lon="-122.478302000">
-<time>2004-11-05T17:09:16Z</time>
-  <name>SFGGBRDG</name>
-  <cmt>SFGGBRDG</cmt>
-  <desc>SFGGBRDG</desc>
-</wpt>
-<wpt lat="37.773033000" lon="-122.605838000">
-<time>2004-11-05T17:09:20Z</time>
-  <name>SFCHNL01</name>
-  <cmt>SFCHNL01</cmt>
-  <desc>SFCHNL01</desc>
-</wpt>
-<wpt lat="37.518860000" lon="-122.529914000">
-<time>2004-11-05T17:09:26Z</time>
-  <name>HMCOLREF</name>
-  <cmt>HMCOLREF</cmt>
-  <desc>HMCOLREF</desc>
-</wpt>
-<wpt lat="37.482348000" lon="-122.507704000">
-<time>2004-11-05T17:09:27Z</time>
-  <name>HMPILL01</name>
-  <cmt>HMPILL01</cmt>
-  <desc>HMPILL01</desc>
-</wpt>
-<wpt lat="37.476448000" lon="-122.475800000">
-<time>2004-11-05T17:09:29Z</time>
-  <name>HMPILL02</name>
-  <cmt>HMPILL02</cmt>
-  <desc>HMPILL02</desc>
-</wpt>
-<wpt lat="37.495102000" lon="-122.483927000">
-<time>2004-11-05T17:09:30Z</time>
-  <name>HMPILL03</name>
-  <cmt>HMPILL03</cmt>
-  <desc>HMPILL03</desc>
-</wpt>
+<bounds minlat="34.019184000" minlon="-122.605838000" maxlat="37.819339000" maxlon="-120.438209000"/>
 <wpt lat="37.229349000" lon="-122.441589000">
 <time>2004-11-05T21:13:00Z</time>
   <name>PESCDR01</name>
@@ -97,12 +43,6 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <cmt>SCRUZENT</cmt>
   <desc>SCRUZENT</desc>
 </wpt>
-<wpt lat="37.475062000" lon="-122.488531000">
-<time>2004-11-05T21:16:24Z</time>
-  <name>HMPILLPT</name>
-  <cmt>HMPILLPT</cmt>
-  <desc>HMPILLPT</desc>
-</wpt>
 <wpt lat="36.581344000" lon="-121.995411000">
 <time>2004-11-05T21:24:22Z</time>
   <name>CYPRSSPT</name>
@@ -235,4 +175,47 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <cmt>ADCOVANC</cmt>
   <desc>ADCOVANC</desc>
 </wpt>
+<rte>
+  <name>Into The Bay</name>
+  <rtept lat="37.763290000" lon="-122.282580000">
+<time>2004-11-05T17:09:09Z</time>
+    <name>SFBALBAY</name>
+  </rtept>
+  <rtept lat="37.751613000" lon="-122.339028000">
+<time>2004-11-05T17:09:10Z</time>
+    <name>SFBAY001</name>
+  </rtept>
+  <rtept lat="37.817420000" lon="-122.394305000">
+<time>2004-11-05T17:09:13Z</time>
+    <name>SFBAY002</name>
+  </rtept>
+  <rtept lat="37.819339000" lon="-122.478302000">
+<time>2004-11-05T17:09:16Z</time>
+    <name>SFGGBRDG</name>
+  </rtept>
+  <rtept lat="37.773033000" lon="-122.605838000">
+<time>2004-11-05T17:09:20Z</time>
+    <name>SFCHNL01</name>
+  </rtept>
+  <rtept lat="37.518860000" lon="-122.529914000">
+<time>2004-11-05T17:09:26Z</time>
+    <name>HMCOLREF</name>
+  </rtept>
+  <rtept lat="37.482348000" lon="-122.507704000">
+<time>2004-11-05T17:09:27Z</time>
+    <name>HMPILL01</name>
+  </rtept>
+  <rtept lat="37.475062000" lon="-122.488531000">
+<time>2004-11-05T21:16:24Z</time>
+    <name>HMPILLPT</name>
+  </rtept>
+  <rtept lat="37.476448000" lon="-122.475800000">
+<time>2004-11-05T17:09:29Z</time>
+    <name>HMPILL02</name>
+  </rtept>
+  <rtept lat="37.495102000" lon="-122.483927000">
+<time>2004-11-05T17:09:30Z</time>
+    <name>HMPILL03</name>
+  </rtept>
+</rte>
 </gpx>
index 20faa6aaa345764a8731c47c1945f1c9c201f647..b9385cbde7032a8890712b880c2060355ce86cd1 100644 (file)
 <?xml version="1.0"?>
 <NavObjectCollection created="19700101T000000Z">
        <Name>Navigation Objects</Name>
-       <Mark created="20041105T170909Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Route created="19700101T000000Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
+               <Marks>
+                       {10111213-1415-1617-1819-1a1b1c1d1e1f}
+                       {20212223-2425-2627-2829-2a2b2c2d2e2f}
+                       {30313233-3435-3637-3839-3a3b3c3d3e3f}
+                       {40414243-4445-4647-4849-4a4b4c4d4e4f}
+                       {50515253-5455-5657-5859-5a5b5c5d5e5f}
+                       {60616263-6465-6667-6869-6a6b6c6d6e6f}
+                       {70717273-7475-7677-7879-7a7b7c7d7e7f}
+                       {80818283-8485-8687-8889-8a8b8c8d8e8f}
+                       {90919293-9495-9697-9899-9a9b9c9d9e9f}
+                       {a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}
+               </Marks>
+               <Name>Into The Bay</Name>
+       </Route>
+       <Mark created="20041105T170909Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>37.763290 N 122.282580 W</Position>
                <Name>SFBALBAY</Name>
        </Mark>
-       <Mark created="20041105T170910Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T170910Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>37.751613 N 122.339028 W</Position>
                <Name>SFBAY001</Name>
        </Mark>
-       <Mark created="20041105T170913Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T170913Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>37.817420 N 122.394305 W</Position>
                <Name>SFBAY002</Name>
        </Mark>
-       <Mark created="20041105T170916Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T170916Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>37.819339 N 122.478302 W</Position>
                <Name>SFGGBRDG</Name>
        </Mark>
-       <Mark created="20041105T170920Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T170920Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>37.773033 N 122.605838 W</Position>
                <Name>SFCHNL01</Name>
        </Mark>
-       <Mark created="20041105T170926Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T170926Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>37.518860 N 122.529914 W</Position>
                <Name>HMCOLREF</Name>
        </Mark>
-       <Mark created="20041105T170927Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T170927Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>37.482348 N 122.507704 W</Position>
                <Name>HMPILL01</Name>
        </Mark>
-       <Mark created="20041105T170929Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T211624Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
+               <Position>37.475062 N 122.488531 W</Position>
+               <Name>HMPILLPT</Name>
+       </Mark>
+       <Mark created="20041105T170929Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>37.476448 N 122.475800 W</Position>
                <Name>HMPILL02</Name>
        </Mark>
-       <Mark created="20041105T170930Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T170930Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>37.495102 N 122.483927 W</Position>
                <Name>HMPILL03</Name>
        </Mark>
-       <Mark created="20041105T211300Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T211300Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>37.229349 N 122.441589 W</Position>
                <Name>PESCDR01</Name>
        </Mark>
-       <Mark created="20041105T211324Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T211324Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>37.183397 N 122.411904 W</Position>
                <Name>PIGEON01</Name>
        </Mark>
-       <Mark created="20041105T211341Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T211341Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>37.090736 N 122.348775 W</Position>
                <Name>ANONUV01</Name>
        </Mark>
-       <Mark created="20041105T211409Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T211409Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>36.929502 N 122.113725 W</Position>
                <Name>SCRUZ01</Name>
        </Mark>
-       <Mark created="20041105T211416Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T211416Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>36.934235 N 122.022130 W</Position>
                <Name>SCRUZ02</Name>
        </Mark>
-       <Mark created="20041105T211420Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T211420Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>36.960666 N 122.024734 W</Position>
                <Name>SCRUZENT</Name>
        </Mark>
-       <Mark created="20041105T211624Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
-               <Position>37.475062 N 122.488531 W</Position>
-               <Name>HMPILLPT</Name>
-       </Mark>
-       <Mark created="20041105T212422Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T212422Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>36.581344 N 121.995411 W</Position>
                <Name>CYPRSSPT</Name>
        </Mark>
-       <Mark created="20041105T212438Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T212438Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>36.301110 N 121.919097 W</Position>
                <Name>PTSUR</Name>
        </Mark>
-       <Mark created="20041105T212515Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T212515Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>36.238177 N 121.855209 W</Position>
                <Name>COOPERPT</Name>
        </Mark>
-       <Mark created="20041105T212526Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T212526Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>36.225175 N 121.801314 W</Position>
                <Name>PFEIFENT</Name>
        </Mark>
-       <Mark created="20041105T212531Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T212531Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>36.230449 N 121.797444 W</Position>
                <Name>PFEIFANC</Name>
        </Mark>
-       <Mark created="20041105T212826Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T212826Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>35.879801 N 121.498947 W</Position>
                <Name>SANMRT01</Name>
        </Mark>
-       <Mark created="20041105T212833Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T212833Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>35.652801 N 121.308485 W</Position>
                <Name>PDRSBLNC</Name>
        </Mark>
-       <Mark created="20041105T212850Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T212850Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
                <Position>35.623297 N 121.185920 W</Position>
                <Name>SNSMNENT</Name>
        </Mark>
-       <Mark created="20041105T212853Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T212853Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>35.640478 N 121.183772 W</Position>
                <Name>SNSMNANC</Name>
        </Mark>
-       <Mark created="20041105T213618Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T213618Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>35.572353 N 121.152797 W</Position>
                <Name>CAMBRIA</Name>
        </Mark>
-       <Mark created="20041105T213626Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T213626Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>35.449214 N 121.020825 W</Position>
                <Name>PTESTERO</Name>
        </Mark>
-       <Mark created="20041105T213635Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T213635Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>35.216602 N 120.928391 W</Position>
                <Name>PTBUCHON</Name>
        </Mark>
-       <Mark created="20041105T213642Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T213642Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>34.883361 N 120.684631 W</Position>
                <Name>PTSAL01</Name>
        </Mark>
-       <Mark created="20041105T213647Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T213647Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>34.884641 N 120.652026 W</Position>
                <Name>PTSALENT</Name>
        </Mark>
-       <Mark created="20041105T213704Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T213704Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>34.896555 N 120.649124 W</Position>
                <Name>PTSALANC</Name>
        </Mark>
-       <Mark created="20041105T213949Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T213949Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>34.758180 N 120.642516 W</Position>
                <Name>PURSMAPT</Name>
        </Mark>
-       <Mark created="20041105T213954Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T213954Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>34.572579 N 120.663636 W</Position>
                <Name>PTARGLLO</Name>
        </Mark>
-       <Mark created="20041105T214005Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T214005Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>34.113844 N 120.492630 W</Position>
                <Name>SANMGL01</Name>
        </Mark>
-       <Mark created="20041105T214044Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T214044Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>34.029483 N 120.471409 W</Position>
                <Name>SANMGL02</Name>
        </Mark>
-       <Mark created="20041105T214048Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T214048Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>34.019184 N 120.444197 W</Position>
                <Name>SANMGL03</Name>
        </Mark>
-       <Mark created="20041105T214057Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T214057Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>34.023478 N 120.438209 W</Position>
                <Name>ADCOVENT</Name>
        </Mark>
-       <Mark created="20041105T214059Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T214059Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>34.028615 N 120.439696 W</Position>
                <Name>ADCOVANC</Name>
        </Mark>
index 42f77510347f4fb1ef4f9e446e861a04420dd45e..e1c1b37aa89fd308e5641d708143bb6fa00e12f9 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="45.988538473" minlon ="11.609659845" maxlat="46.159847646" maxlon="12.121156748" />
+<bounds minlat="45.988538473" minlon="11.609659845" maxlat="46.159847646" maxlon="12.121156748"/>
 <wpt lat="46.029489931" lon="11.825879086">
   <ele>1400.000000</ele>
   <name>F01140</name>
index 1f04db89de8277ac45734d7ed4432501989e17f3..52843a39f859f8aad0f2749f7973ffd04f6c9c8a 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="29.958683333" minlon ="-90.065533333" maxlat="48.570233333" maxlon="9.524850000" />
+<bounds minlat="29.958683333" minlon="-90.065533333" maxlat="48.570233333" maxlon="9.524850000"/>
 <wpt lat="29.958683333" lon="-90.065533333">
   <name>GC2663</name>
   <cmt>New Orleans Bon Chance (Good Luck) Cache-Cam by CrotalusRex and Mimichan</cmt>
old mode 100644 (file)
new mode 100755 (executable)
index 3d97dacac8b38d5f9a600a89ea198a6796f26b03..010570ff769aac8731a86efe98bfd07032f194fb 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<kml xmlns="http://earth.google.com/kml/2.1">
-  <Document xmlns:xlink="http://www.w3.org/1999/xlink">
+<kml xmlns="http://earth.google.com/kml/2.1"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://earth.google.com/kml/2.1 
+       http://code.google.com/apis/kml/schema/kml21.xsd">
+  <Document>
     <name>GPS device</name>
 <!-- Normal route style -->
     <Style id="route_n">
index 87c3b9c96f060bd33f058138cd72463caaa6ab9d..20c2122a8199ef764076dd85647122e9c21d85e9 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<kml xmlns="http://earth.google.com/kml/2.1">
-  <Document xmlns:xlink="http://www.w3.org/1999/xlink">
+<kml xmlns="http://earth.google.com/kml/2.1"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://earth.google.com/kml/2.1 
+       http://code.google.com/apis/kml/schema/kml21.xsd">
+  <Document>
     <name>GPS device</name>
 <!-- Normal route style -->
     <Style id="route_n">
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/reference/expertgps.rwf b/reference/expertgps.rwf
new file mode 100644 (file)
index 0000000..64280cd
--- /dev/null
@@ -0,0 +1,2270 @@
+[Wp0]
+Loc=New location
+Name=5066
+Lat=42.438878000000003
+Long=-71.119276999999997
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5066
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp1]
+Loc=New location
+Name=5067
+Lat=42.439227000000002
+Long=-71.119688999999994
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5067
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143692129600000
+GUID=0-0-0-0
+[Wp2]
+Loc=New location
+Name=5096
+Lat=42.438916999999996
+Long=-71.116146000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5096
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37211.960856481500000
+GUID=0-0-0-0
+[Wp3]
+Loc=New location
+Name=5142
+Lat=42.443904000000003
+Long=-71.122044000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5142
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp4]
+Loc=New location
+Name=5156
+Lat=42.447298000000004
+Long=-71.121447000000003
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5156
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143726851800000
+GUID=0-0-0-0
+[Wp5]
+Loc=New location
+Name=5224
+Lat=42.454872999999999
+Long=-71.125094000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5224
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143738425900000
+GUID=0-0-0-0
+[Wp6]
+Loc=New location
+Name=5229
+Lat=42.459079000000003
+Long=-71.124988000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5229
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143738425900000
+GUID=0-0-0-0
+[Wp7]
+Loc=New location
+Name=5237
+Lat=42.456978999999997
+Long=-71.124474000000006
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5237
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143738425900000
+GUID=0-0-0-0
+[Wp8]
+Loc=New location
+Name=5254
+Lat=42.454400999999997
+Long=-71.120990000000006
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5254
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp9]
+Loc=New location
+Name=5258
+Lat=42.451442000000000
+Long=-71.121746000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5258
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp10]
+Loc=New location
+Name=5264
+Lat=42.454403999999997
+Long=-71.120660000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5264
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp11]
+Loc=New location
+Name=526708
+Lat=42.457760999999998
+Long=-71.121044999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=526708
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143750000000000
+GUID=0-0-0-0
+[Wp12]
+Loc=New location
+Name=526750
+Lat=42.457089000000003
+Long=-71.120312999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=526750
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143750000000000
+GUID=0-0-0-0
+[Wp13]
+Loc=New location
+Name=527614
+Lat=42.456592000000001
+Long=-71.119675999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=527614
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp14]
+Loc=New location
+Name=527631
+Lat=42.456251999999999
+Long=-71.119355999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=527631
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp15]
+Loc=New location
+Name=5278
+Lat=42.458148000000001
+Long=-71.119135000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5278
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143750000000000
+GUID=0-0-0-0
+[Wp16]
+Loc=New location
+Name=5289
+Lat=42.459377000000003
+Long=-71.117693000000003
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5289
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143761574100000
+GUID=0-0-0-0
+[Wp17]
+Loc=New location
+Name=5374FIRE
+Lat=42.464182999999998
+Long=-71.119827999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5374FIRE
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp18]
+Loc=New location
+Name=5376
+Lat=42.465649999999997
+Long=-71.119399000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=5376
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143773148100000
+GUID=0-0-0-0
+[Wp19]
+Loc=New location
+Name=6006
+Lat=42.439017999999997
+Long=-71.114456000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=600698
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143692129600000
+GUID=0-0-0-0
+[Wp20]
+Loc=New location
+Name=6006BLUE
+Lat=42.438594000000002
+Long=-71.114802999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6006BLUE
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp21]
+Loc=New location
+Name=6014MEADOW
+Lat=42.436757000000000
+Long=-71.113223000000005
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6014MEADOW
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp22]
+Loc=New location
+Name=6029
+Lat=42.441754000000003
+Long=-71.113219999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6029
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143692129600000
+GUID=0-0-0-0
+[Wp23]
+Loc=New location
+Name=6053
+Lat=42.436242999999997
+Long=-71.109075000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6053
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143807870400000
+GUID=0-0-0-0
+[Wp24]
+Loc=New location
+Name=6066
+Lat=42.439250000000001
+Long=-71.107500000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6066
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143715277800000
+GUID=0-0-0-0
+[Wp25]
+Loc=New location
+Name=6067
+Lat=42.439763999999997
+Long=-71.107581999999994
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6067
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143715277800000
+GUID=0-0-0-0
+[Wp26]
+Loc=New location
+Name=6071
+Lat=42.434766000000003
+Long=-71.105874000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6071
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143715277800000
+GUID=0-0-0-0
+[Wp27]
+Loc=New location
+Name=6073
+Lat=42.433304000000000
+Long=-71.106599000000003
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6073
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143703703700000
+GUID=0-0-0-0
+[Wp28]
+Loc=New location
+Name=6084
+Lat=42.437337999999997
+Long=-71.104771999999997
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6084
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143715277800000
+GUID=0-0-0-0
+[Wp29]
+Loc=New location
+Name=6130
+Lat=42.442196000000003
+Long=-71.110974999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6130
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143692129600000
+GUID=0-0-0-0
+[Wp30]
+Loc=New location
+Name=6131
+Lat=42.442981000000003
+Long=-71.111440999999999
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6131
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143726851800000
+GUID=0-0-0-0
+[Wp31]
+Loc=New location
+Name=6153
+Lat=42.444772999999998
+Long=-71.108881999999994
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6153
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143807870400000
+GUID=0-0-0-0
+[Wp32]
+Loc=New location
+Name=6171
+Lat=42.443592000000002
+Long=-71.106301000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6171
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143807870400000
+GUID=0-0-0-0
+[Wp33]
+Loc=New location
+Name=6176
+Lat=42.447803999999998
+Long=-71.106623999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6176
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143796296300000
+GUID=0-0-0-0
+[Wp34]
+Loc=New location
+Name=6177
+Lat=42.448447999999999
+Long=-71.106157999999994
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6177
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143796296300000
+GUID=0-0-0-0
+[Wp35]
+Loc=New location
+Name=6272
+Lat=42.453415000000000
+Long=-71.106782999999993
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6272
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143692129600000
+GUID=0-0-0-0
+[Wp36]
+Loc=New location
+Name=6272
+Lat=42.453434000000001
+Long=-71.107253000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6272
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143703703700000
+GUID=0-0-0-0
+[Wp37]
+Loc=New location
+Name=6278
+Lat=42.458297999999999
+Long=-71.106770999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6278
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143796296300000
+GUID=0-0-0-0
+[Wp38]
+Loc=New location
+Name=6280
+Lat=42.451430000000002
+Long=-71.105412999999999
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6280
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37211.960856481500000
+GUID=0-0-0-0
+[Wp39]
+Loc=New location
+Name=6283
+Lat=42.453845000000001
+Long=-71.105205999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6283
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37211.960856481500000
+GUID=0-0-0-0
+[Wp40]
+Loc=New location
+Name=6289
+Lat=42.459986000000001
+Long=-71.106170000000006
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6289
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37211.960856481500000
+GUID=0-0-0-0
+[Wp41]
+Loc=New location
+Name=6297
+Lat=42.457616000000002
+Long=-71.105115999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6297
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143796296300000
+GUID=0-0-0-0
+[Wp42]
+Loc=New location
+Name=6328
+Lat=42.467109999999998
+Long=-71.113574000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6328
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143773148100000
+GUID=0-0-0-0
+[Wp43]
+Loc=New location
+Name=6354
+Lat=42.464202000000000
+Long=-71.109863000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6354
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143784722200000
+GUID=0-0-0-0
+[Wp44]
+Loc=New location
+Name=635722
+Lat=42.466459000000000
+Long=-71.110067000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=635722
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143773148100000
+GUID=0-0-0-0
+[Wp45]
+Loc=New location
+Name=635783
+Lat=42.466557000000002
+Long=-71.109409999999997
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=635783
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143773148100000
+GUID=0-0-0-0
+[Wp46]
+Loc=New location
+Name=6373
+Lat=42.463495000000002
+Long=-71.107117000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6373
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143784722200000
+GUID=0-0-0-0
+[Wp47]
+Loc=New location
+Name=6634
+Lat=42.401051000000002
+Long=-71.110241000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6634
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143703703700000
+GUID=0-0-0-0
+[Wp48]
+Loc=New location
+Name=6979
+Lat=42.432620999999997
+Long=-71.106532000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6979
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143703703700000
+GUID=0-0-0-0
+[Wp49]
+Loc=New location
+Name=6997
+Lat=42.431032999999999
+Long=-71.107883000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=6997
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37211.960856481500000
+GUID=0-0-0-0
+[Wp50]
+Loc=New location
+Name=BEAR HILL
+Lat=42.465687000000003
+Long=-71.107360000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Bear Hill Tower
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143784722200000
+GUID=0-0-0-0
+[Wp51]
+Loc=New location
+Name=BELLEVUE
+Lat=42.430950000000003
+Long=-71.107628000000005
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Bellevue Parking Lot
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.012673611100000
+GUID=0-0-0-0
+[Wp52]
+Loc=New location
+Name=6016
+Lat=42.438665999999998
+Long=-71.114079000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Bike Loop Connector
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp53]
+Loc=New location
+Name=5236BRIDGE
+Lat=42.456468999999998
+Long=-71.124651000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Bridge
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143738425900000
+GUID=0-0-0-0
+[Wp54]
+Loc=New location
+Name=5376BRIDGE
+Lat=42.465758999999998
+Long=-71.119815000000003
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Bridge
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143761574100000
+GUID=0-0-0-0
+[Wp55]
+Loc=New location
+Name=6181CROSS
+Lat=42.442993000000001
+Long=-71.105878000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Crossing
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143807870400000
+GUID=0-0-0-0
+[Wp56]
+Loc=New location
+Name=6042CROSS
+Lat=42.435471999999997
+Long=-71.109663999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Crossing
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143807870400000
+GUID=0-0-0-0
+[Wp57]
+Loc=New location
+Name=DARKHOLLPO
+Lat=42.458516000000003
+Long=-71.103645999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dark Hollow Pond
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=25569.000000000000000
+GUID=0-0-0-0
+[Wp58]
+Loc=New location
+Name=6121DEAD
+Lat=42.443109000000000
+Long=-71.112674999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dead End
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143715277800000
+GUID=0-0-0-0
+[Wp59]
+Loc=New location
+Name=5179DEAD
+Lat=42.449866000000000
+Long=-71.119298000000001
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dead End
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143738425900000
+GUID=0-0-0-0
+[Wp60]
+Loc=New location
+Name=5299DEAD
+Lat=42.459629000000000
+Long=-71.116523999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dead End
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143761574100000
+GUID=0-0-0-0
+[Wp61]
+Loc=New location
+Name=5376DEAD
+Lat=42.465485000000001
+Long=-71.119147999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dead End
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143773148100000
+GUID=0-0-0-0
+[Wp62]
+Loc=New location
+Name=6353DEAD
+Lat=42.462775999999998
+Long=-71.109986000000006
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dead End
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143784722200000
+GUID=0-0-0-0
+[Wp63]
+Loc=New location
+Name=6155DEAD
+Lat=42.446793000000000
+Long=-71.108784000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Dead End
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143796296300000
+GUID=0-0-0-0
+[Wp64]
+Loc=New location
+Name=GATE14
+Lat=42.451203999999997
+Long=-71.126602000000005
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 14
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143738425900000
+GUID=0-0-0-0
+[Wp65]
+Loc=New location
+Name=GATE16
+Lat=42.458499000000003
+Long=-71.122078000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 16
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143750000000000
+GUID=0-0-0-0
+[Wp66]
+Loc=New location
+Name=GATE17
+Lat=42.459375999999999
+Long=-71.119237999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 17
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143761574100000
+GUID=0-0-0-0
+[Wp67]
+Loc=New location
+Name=GATE19
+Lat=42.466352999999998
+Long=-71.119240000000005
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 19
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143773148100000
+GUID=0-0-0-0
+[Wp68]
+Loc=New location
+Name=GATE21
+Lat=42.468654999999998
+Long=-71.107697000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 21
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143784722200000
+GUID=0-0-0-0
+[Wp69]
+Loc=New location
+Name=GATE24
+Lat=42.456718000000002
+Long=-71.102973000000006
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 24
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143784722200000
+GUID=0-0-0-0
+[Wp70]
+Loc=New location
+Name=GATE5
+Lat=42.430847000000000
+Long=-71.107690000000005
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 5
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp71]
+Loc=New location
+Name=GATE6
+Lat=42.431240000000003
+Long=-71.109235999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Gate 6
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp72]
+Loc=New location
+Name=6077LOGS
+Lat=42.439501999999997
+Long=-71.106555999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Log Crossing
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.012685185200000
+GUID=0-0-0-0
+[Wp73]
+Loc=New location
+Name=5148NANEPA
+Lat=42.449764999999999
+Long=-71.122320000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Nanepashemet Road Crossing
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp74]
+Loc=New location
+Name=5267OBSTAC
+Lat=42.457388000000002
+Long=-71.119844999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Obstacle
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143750000000000
+GUID=0-0-0-0
+[Wp75]
+Loc=New location
+Name=PANTHRCAVE
+Lat=42.434980000000003
+Long=-71.109942000000004
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Panther Cave
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp76]
+Loc=New location
+Name=5252PURPLE
+Lat=42.453256000000003
+Long=-71.121211000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Purple Rock Hill
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp77]
+Loc=New location
+Name=5287WATER
+Lat=42.457734000000002
+Long=-71.117480999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Reservoir
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143761574100000
+GUID=0-0-0-0
+[Wp78]
+Loc=New location
+Name=5239ROAD
+Lat=42.459277999999998
+Long=-71.124573999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Road
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143750000000000
+GUID=0-0-0-0
+[Wp79]
+Loc=New location
+Name=5278ROAD
+Lat=42.458781999999999
+Long=-71.118990999999994
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Road
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143761574100000
+GUID=0-0-0-0
+[Wp80]
+Loc=New location
+Name=5058ROAD
+Lat=42.439993000000001
+Long=-71.120925000000000
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Road Crossing
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.012662037000000
+GUID=0-0-0-0
+[Wp81]
+Loc=New location
+Name=SHEEPFOLD
+Lat=42.453415000000000
+Long=-71.106781999999995
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Sheepfold Parking Lot
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.012650463000000
+GUID=0-0-0-0
+[Wp82]
+Loc=New location
+Name=SOAPBOX
+Lat=42.455956000000000
+Long=-71.107483000000002
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Soap Box Derby Track
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.143796296300000
+GUID=0-0-0-0
+[Wp83]
+Loc=New location
+Name=5376STREAM
+Lat=42.465913000000000
+Long=-71.119327999999996
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Stream Crossing
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37202.995613425900000
+GUID=0-0-0-0
+[Wp84]
+Loc=New location
+Name=5144SUMMIT
+Lat=42.445359000000003
+Long=-71.122844999999998
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Summit
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37223.878796296300000
+GUID=0-0-0-0
+[Wp85]
+Loc=New location
+Name=5150TANK
+Lat=42.441727000000000
+Long=-71.121675999999994
+Rng=0.000000000000000
+Bear=0.000000000000000
+Bmp=3
+Fixed=1
+Locked=0
+Notes=Water Tank
+Rel=
+RelSet=1
+RcCount=1
+RcRadius=0.000000000000000
+Show=1
+RcShow=0
+SeaTemp=-32678.000000000000000
+Depth=65535.000000000000000
+Time=37044.012685185200000
+GUID=0-0-0-0
+[Rt0]
+Name=BELLEVUE
+Visible=1
+Guid=0-0-0-0
+Mk0=BELLEVUE
+Cog0=0.000000000000000
+Eta0=0.000000000000000
+LengthPredictedDrift0=0.000000000000000
+PredictedSet0=0.000000000000000
+PredictedSog0=0.000000000000000
+PredictedTime0=0.000000000000000
+PredictedTwa20=0.000000000000000
+PredictedTwd0=0.000000000000000
+PredictedTws0=0.000000000000000
+Mk1=GATE6
+Cog1=0.000000000000000
+Eta1=0.000000000000000
+LengthPredictedDrift1=0.000000000000000
+PredictedSet1=0.000000000000000
+PredictedSog1=0.000000000000000
+PredictedTime1=0.000000000000000
+PredictedTwa21=0.000000000000000
+PredictedTwd1=0.000000000000000
+PredictedTws1=0.000000000000000
+Mk2=PANTHRCAVE
+Cog2=0.000000000000000
+Eta2=0.000000000000000
+LengthPredictedDrift2=0.000000000000000
+PredictedSet2=0.000000000000000
+PredictedSog2=0.000000000000000
+PredictedTime2=0.000000000000000
+PredictedTwa22=0.000000000000000
+PredictedTwd2=0.000000000000000
+PredictedTws2=0.000000000000000
+Mk3=6014MEADOW
+Cog3=0.000000000000000
+Eta3=0.000000000000000
+LengthPredictedDrift3=0.000000000000000
+PredictedSet3=0.000000000000000
+PredictedSog3=0.000000000000000
+PredictedTime3=0.000000000000000
+PredictedTwa23=0.000000000000000
+PredictedTwd3=0.000000000000000
+PredictedTws3=0.000000000000000
+Mk4=6006
+Cog4=0.000000000000000
+Eta4=0.000000000000000
+LengthPredictedDrift4=0.000000000000000
+PredictedSet4=0.000000000000000
+PredictedSog4=0.000000000000000
+PredictedTime4=0.000000000000000
+PredictedTwa24=0.000000000000000
+PredictedTwd4=0.000000000000000
+PredictedTws4=0.000000000000000
+Mk5=6006BLUE
+Cog5=0.000000000000000
+Eta5=0.000000000000000
+LengthPredictedDrift5=0.000000000000000
+PredictedSet5=0.000000000000000
+PredictedSog5=0.000000000000000
+PredictedTime5=0.000000000000000
+PredictedTwa25=0.000000000000000
+PredictedTwd5=0.000000000000000
+PredictedTws5=0.000000000000000
+Mk6=5096
+Cog6=0.000000000000000
+Eta6=0.000000000000000
+LengthPredictedDrift6=0.000000000000000
+PredictedSet6=0.000000000000000
+PredictedSog6=0.000000000000000
+PredictedTime6=0.000000000000000
+PredictedTwa26=0.000000000000000
+PredictedTwd6=0.000000000000000
+PredictedTws6=0.000000000000000
+Mk7=5066
+Cog7=0.000000000000000
+Eta7=0.000000000000000
+LengthPredictedDrift7=0.000000000000000
+PredictedSet7=0.000000000000000
+PredictedSog7=0.000000000000000
+PredictedTime7=0.000000000000000
+PredictedTwa27=0.000000000000000
+PredictedTwd7=0.000000000000000
+PredictedTws7=0.000000000000000
+Mk8=5067
+Cog8=0.000000000000000
+Eta8=0.000000000000000
+LengthPredictedDrift8=0.000000000000000
+PredictedSet8=0.000000000000000
+PredictedSog8=0.000000000000000
+PredictedTime8=0.000000000000000
+PredictedTwa28=0.000000000000000
+PredictedTwd8=0.000000000000000
+PredictedTws8=0.000000000000000
+Mk9=5058ROAD
+Cog9=0.000000000000000
+Eta9=0.000000000000000
+LengthPredictedDrift9=0.000000000000000
+PredictedSet9=0.000000000000000
+PredictedSog9=0.000000000000000
+PredictedTime9=0.000000000000000
+PredictedTwa29=0.000000000000000
+PredictedTwd9=0.000000000000000
+PredictedTws9=0.000000000000000
+Mk10=5150TANK
+Cog10=0.000000000000000
+Eta10=0.000000000000000
+LengthPredictedDrift10=0.000000000000000
+PredictedSet10=0.000000000000000
+PredictedSog10=0.000000000000000
+PredictedTime10=0.000000000000000
+PredictedTwa210=0.000000000000000
+PredictedTwd10=0.000000000000000
+PredictedTws10=0.000000000000000
+Mk11=5142
+Cog11=0.000000000000000
+Eta11=0.000000000000000
+LengthPredictedDrift11=0.000000000000000
+PredictedSet11=0.000000000000000
+PredictedSog11=0.000000000000000
+PredictedTime11=0.000000000000000
+PredictedTwa211=0.000000000000000
+PredictedTwd11=0.000000000000000
+PredictedTws11=0.000000000000000
+Mk12=5144SUMMIT
+Cog12=0.000000000000000
+Eta12=0.000000000000000
+LengthPredictedDrift12=0.000000000000000
+PredictedSet12=0.000000000000000
+PredictedSog12=0.000000000000000
+PredictedTime12=0.000000000000000
+PredictedTwa212=0.000000000000000
+PredictedTwd12=0.000000000000000
+PredictedTws12=0.000000000000000
+Mk13=5156
+Cog13=0.000000000000000
+Eta13=0.000000000000000
+LengthPredictedDrift13=0.000000000000000
+PredictedSet13=0.000000000000000
+PredictedSog13=0.000000000000000
+PredictedTime13=0.000000000000000
+PredictedTwa213=0.000000000000000
+PredictedTwd13=0.000000000000000
+PredictedTws13=0.000000000000000
+Mk14=5148NANEPA
+Cog14=0.000000000000000
+Eta14=0.000000000000000
+LengthPredictedDrift14=0.000000000000000
+PredictedSet14=0.000000000000000
+PredictedSog14=0.000000000000000
+PredictedTime14=0.000000000000000
+PredictedTwa214=0.000000000000000
+PredictedTwd14=0.000000000000000
+PredictedTws14=0.000000000000000
+Mk15=5258
+Cog15=0.000000000000000
+Eta15=0.000000000000000
+LengthPredictedDrift15=0.000000000000000
+PredictedSet15=0.000000000000000
+PredictedSog15=0.000000000000000
+PredictedTime15=0.000000000000000
+PredictedTwa215=0.000000000000000
+PredictedTwd15=0.000000000000000
+PredictedTws15=0.000000000000000
+Mk16=5252PURPLE
+Cog16=0.000000000000000
+Eta16=0.000000000000000
+LengthPredictedDrift16=0.000000000000000
+PredictedSet16=0.000000000000000
+PredictedSog16=0.000000000000000
+PredictedTime16=0.000000000000000
+PredictedTwa216=0.000000000000000
+PredictedTwd16=0.000000000000000
+PredictedTws16=0.000000000000000
+Mk17=527631
+Cog17=0.000000000000000
+Eta17=0.000000000000000
+LengthPredictedDrift17=0.000000000000000
+PredictedSet17=0.000000000000000
+PredictedSog17=0.000000000000000
+PredictedTime17=0.000000000000000
+PredictedTwa217=0.000000000000000
+PredictedTwd17=0.000000000000000
+PredictedTws17=0.000000000000000
+Mk18=527614
+Cog18=0.000000000000000
+Eta18=0.000000000000000
+LengthPredictedDrift18=0.000000000000000
+PredictedSet18=0.000000000000000
+PredictedSog18=0.000000000000000
+PredictedTime18=0.000000000000000
+PredictedTwa218=0.000000000000000
+PredictedTwd18=0.000000000000000
+PredictedTws18=0.000000000000000
+Mk19=5267OBSTAC
+Cog19=0.000000000000000
+Eta19=0.000000000000000
+LengthPredictedDrift19=0.000000000000000
+PredictedSet19=0.000000000000000
+PredictedSog19=0.000000000000000
+PredictedTime19=0.000000000000000
+PredictedTwa219=0.000000000000000
+PredictedTwd19=0.000000000000000
+PredictedTws19=0.000000000000000
+Mk20=5278
+Cog20=0.000000000000000
+Eta20=0.000000000000000
+LengthPredictedDrift20=0.000000000000000
+PredictedSet20=0.000000000000000
+PredictedSog20=0.000000000000000
+PredictedTime20=0.000000000000000
+PredictedTwa220=0.000000000000000
+PredictedTwd20=0.000000000000000
+PredictedTws20=0.000000000000000
+Mk21=5289
+Cog21=0.000000000000000
+Eta21=0.000000000000000
+LengthPredictedDrift21=0.000000000000000
+PredictedSet21=0.000000000000000
+PredictedSog21=0.000000000000000
+PredictedTime21=0.000000000000000
+PredictedTwa221=0.000000000000000
+PredictedTwd21=0.000000000000000
+PredictedTws21=0.000000000000000
+Mk22=5374FIRE
+Cog22=0.000000000000000
+Eta22=0.000000000000000
+LengthPredictedDrift22=0.000000000000000
+PredictedSet22=0.000000000000000
+PredictedSog22=0.000000000000000
+PredictedTime22=0.000000000000000
+PredictedTwa222=0.000000000000000
+PredictedTwd22=0.000000000000000
+PredictedTws22=0.000000000000000
+Mk23=5376
+Cog23=0.000000000000000
+Eta23=0.000000000000000
+LengthPredictedDrift23=0.000000000000000
+PredictedSet23=0.000000000000000
+PredictedSog23=0.000000000000000
+PredictedTime23=0.000000000000000
+PredictedTwa223=0.000000000000000
+PredictedTwd23=0.000000000000000
+PredictedTws23=0.000000000000000
+Mk24=5376STREAM
+Cog24=0.000000000000000
+Eta24=0.000000000000000
+LengthPredictedDrift24=0.000000000000000
+PredictedSet24=0.000000000000000
+PredictedSog24=0.000000000000000
+PredictedTime24=0.000000000000000
+PredictedTwa224=0.000000000000000
+PredictedTwd24=0.000000000000000
+PredictedTws24=0.000000000000000
+Mk25=6328
+Cog25=0.000000000000000
+Eta25=0.000000000000000
+LengthPredictedDrift25=0.000000000000000
+PredictedSet25=0.000000000000000
+PredictedSog25=0.000000000000000
+PredictedTime25=0.000000000000000
+PredictedTwa225=0.000000000000000
+PredictedTwd25=0.000000000000000
+PredictedTws25=0.000000000000000
+Mk26=635722
+Cog26=0.000000000000000
+Eta26=0.000000000000000
+LengthPredictedDrift26=0.000000000000000
+PredictedSet26=0.000000000000000
+PredictedSog26=0.000000000000000
+PredictedTime26=0.000000000000000
+PredictedTwa226=0.000000000000000
+PredictedTwd26=0.000000000000000
+PredictedTws26=0.000000000000000
+Mk27=635783
+Cog27=0.000000000000000
+Eta27=0.000000000000000
+LengthPredictedDrift27=0.000000000000000
+PredictedSet27=0.000000000000000
+PredictedSog27=0.000000000000000
+PredictedTime27=0.000000000000000
+PredictedTwa227=0.000000000000000
+PredictedTwd27=0.000000000000000
+PredictedTws27=0.000000000000000
+Mk28=6373
+Cog28=0.000000000000000
+Eta28=0.000000000000000
+LengthPredictedDrift28=0.000000000000000
+PredictedSet28=0.000000000000000
+PredictedSog28=0.000000000000000
+PredictedTime28=0.000000000000000
+PredictedTwa228=0.000000000000000
+PredictedTwd28=0.000000000000000
+PredictedTws28=0.000000000000000
+Mk29=BEAR HILL
+Cog29=0.000000000000000
+Eta29=0.000000000000000
+LengthPredictedDrift29=0.000000000000000
+PredictedSet29=0.000000000000000
+PredictedSog29=0.000000000000000
+PredictedTime29=0.000000000000000
+PredictedTwa229=0.000000000000000
+PredictedTwd29=0.000000000000000
+PredictedTws29=0.000000000000000
+Mk30=6289
+Cog30=0.000000000000000
+Eta30=0.000000000000000
+LengthPredictedDrift30=0.000000000000000
+PredictedSet30=0.000000000000000
+PredictedSog30=0.000000000000000
+PredictedTime30=0.000000000000000
+PredictedTwa230=0.000000000000000
+PredictedTwd30=0.000000000000000
+PredictedTws30=0.000000000000000
+Mk31=6297
+Cog31=0.000000000000000
+Eta31=0.000000000000000
+LengthPredictedDrift31=0.000000000000000
+PredictedSet31=0.000000000000000
+PredictedSog31=0.000000000000000
+PredictedTime31=0.000000000000000
+PredictedTwa231=0.000000000000000
+PredictedTwd31=0.000000000000000
+PredictedTws31=0.000000000000000
+Mk32=6283
+Cog32=0.000000000000000
+Eta32=0.000000000000000
+LengthPredictedDrift32=0.000000000000000
+PredictedSet32=0.000000000000000
+PredictedSog32=0.000000000000000
+PredictedTime32=0.000000000000000
+PredictedTwa232=0.000000000000000
+PredictedTwd32=0.000000000000000
+PredictedTws32=0.000000000000000
+Mk33=6280
+Cog33=0.000000000000000
+Eta33=0.000000000000000
+LengthPredictedDrift33=0.000000000000000
+PredictedSet33=0.000000000000000
+PredictedSog33=0.000000000000000
+PredictedTime33=0.000000000000000
+PredictedTwa233=0.000000000000000
+PredictedTwd33=0.000000000000000
+PredictedTws33=0.000000000000000
+Mk34=6177
+Cog34=0.000000000000000
+Eta34=0.000000000000000
+LengthPredictedDrift34=0.000000000000000
+PredictedSet34=0.000000000000000
+PredictedSog34=0.000000000000000
+PredictedTime34=0.000000000000000
+PredictedTwa234=0.000000000000000
+PredictedTwd34=0.000000000000000
+PredictedTws34=0.000000000000000
+Mk35=6176
+Cog35=0.000000000000000
+Eta35=0.000000000000000
+LengthPredictedDrift35=0.000000000000000
+PredictedSet35=0.000000000000000
+PredictedSog35=0.000000000000000
+PredictedTime35=0.000000000000000
+PredictedTwa235=0.000000000000000
+PredictedTwd35=0.000000000000000
+PredictedTws35=0.000000000000000
+Mk36=6153
+Cog36=0.000000000000000
+Eta36=0.000000000000000
+LengthPredictedDrift36=0.000000000000000
+PredictedSet36=0.000000000000000
+PredictedSog36=0.000000000000000
+PredictedTime36=0.000000000000000
+PredictedTwa236=0.000000000000000
+PredictedTwd36=0.000000000000000
+PredictedTws36=0.000000000000000
+Mk37=6171
+Cog37=0.000000000000000
+Eta37=0.000000000000000
+LengthPredictedDrift37=0.000000000000000
+PredictedSet37=0.000000000000000
+PredictedSog37=0.000000000000000
+PredictedTime37=0.000000000000000
+PredictedTwa237=0.000000000000000
+PredictedTwd37=0.000000000000000
+PredictedTws37=0.000000000000000
+Mk38=6131
+Cog38=0.000000000000000
+Eta38=0.000000000000000
+LengthPredictedDrift38=0.000000000000000
+PredictedSet38=0.000000000000000
+PredictedSog38=0.000000000000000
+PredictedTime38=0.000000000000000
+PredictedTwa238=0.000000000000000
+PredictedTwd38=0.000000000000000
+PredictedTws38=0.000000000000000
+Mk39=6130
+Cog39=0.000000000000000
+Eta39=0.000000000000000
+LengthPredictedDrift39=0.000000000000000
+PredictedSet39=0.000000000000000
+PredictedSog39=0.000000000000000
+PredictedTime39=0.000000000000000
+PredictedTwa239=0.000000000000000
+PredictedTwd39=0.000000000000000
+PredictedTws39=0.000000000000000
+Mk40=6029
+Cog40=0.000000000000000
+Eta40=0.000000000000000
+LengthPredictedDrift40=0.000000000000000
+PredictedSet40=0.000000000000000
+PredictedSog40=0.000000000000000
+PredictedTime40=0.000000000000000
+PredictedTwa240=0.000000000000000
+PredictedTwd40=0.000000000000000
+PredictedTws40=0.000000000000000
+Mk41=6006
+Cog41=0.000000000000000
+Eta41=0.000000000000000
+LengthPredictedDrift41=0.000000000000000
+PredictedSet41=0.000000000000000
+PredictedSog41=0.000000000000000
+PredictedTime41=0.000000000000000
+PredictedTwa241=0.000000000000000
+PredictedTwd41=0.000000000000000
+PredictedTws41=0.000000000000000
+Mk42=6014MEADOW
+Cog42=0.000000000000000
+Eta42=0.000000000000000
+LengthPredictedDrift42=0.000000000000000
+PredictedSet42=0.000000000000000
+PredictedSog42=0.000000000000000
+PredictedTime42=0.000000000000000
+PredictedTwa242=0.000000000000000
+PredictedTwd42=0.000000000000000
+PredictedTws42=0.000000000000000
+Mk43=PANTHRCAVE
+Cog43=0.000000000000000
+Eta43=0.000000000000000
+LengthPredictedDrift43=0.000000000000000
+PredictedSet43=0.000000000000000
+PredictedSog43=0.000000000000000
+PredictedTime43=0.000000000000000
+PredictedTwa243=0.000000000000000
+PredictedTwd43=0.000000000000000
+PredictedTws43=0.000000000000000
+Mk44=GATE6
+Cog44=0.000000000000000
+Eta44=0.000000000000000
+LengthPredictedDrift44=0.000000000000000
+PredictedSet44=0.000000000000000
+PredictedSog44=0.000000000000000
+PredictedTime44=0.000000000000000
+PredictedTwa244=0.000000000000000
+PredictedTwd44=0.000000000000000
+PredictedTws44=0.000000000000000
+Mk45=BELLEVUE
+Cog45=0.000000000000000
+Eta45=0.000000000000000
+LengthPredictedDrift45=0.000000000000000
+PredictedSet45=0.000000000000000
+PredictedSog45=0.000000000000000
+PredictedTime45=0.000000000000000
+PredictedTwa245=0.000000000000000
+PredictedTwd45=0.000000000000000
+PredictedTws45=0.000000000000000
index 29d630f89523e64fa12cd8389613ddd38b83a246..4ad0e3b1c98b8d97e04c41bb4da8697444bff745 100644 (file)
@@ -10,7 +10,7 @@
 # Height in meters [optional when importing, always present when exporting: Date (GMT) as ISO YYYYMMDD, Time of the day relative to the date as HHMMSS
 GCEBB,Mountain Bike Heaven by susy1313,,35.9720333,-87.1347000,0.0    ,19700101,000000
 GC1A37,The Troll by a182pilot & Family,,36.0906833,-86.6795500,0.0    ,19700101,000000
-GC1C2B,Dive Bomber by JoGPS & family,,35.9962667,-86.6201167,0.0    ,19700101,110303
+GC1C2B,Dive Bomber by JoGPS & family,,35.9962667,-86.6201167,0.0    ,19700101,110304
 GC25A9,FOSTER by JoGPS & Family,,36.0384833,-86.6486167,0.0    ,19700101,130405
 GC2723,Logan Lighthouse by JoGps & Family,,36.1121833,-86.7417667,0.0    ,20050102,000000
 GC2B71,Ganier Cache by Susy1313,,36.0640833,-86.7905167,0.0    ,20050102,000001
diff --git a/reference/garmin_symbols.gpx b/reference/garmin_symbols.gpx
new file mode 100644 (file)
index 0000000..e8c9ee0
--- /dev/null
@@ -0,0 +1,4620 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.12.0.2 Beta" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
+
+  <metadata>
+    <link href="http://www.garmin.com">
+      <text>Garmin International</text>
+    </link>
+    <time>2007-02-10T21:45:23Z</time>
+    <bounds maxlat="0.0000000" maxlon="0.0000000" minlat="0.0000000" minlon="0.0000000"/>
+  </metadata>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>107.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Airport</name>
+    <cmt>MPS:0107, PCX:16384</cmt>
+    <desc>MPS:0107, PCX:16384</desc>
+    <sym>Airport</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16384.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>73.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Amusement Park</name>
+    <cmt>MPS:0073, PCX:08204</cmt>
+    <desc>MPS:0073, PCX:08204</desc>
+    <sym>Amusement Park</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8204.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>0.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Anchor</name>
+    <cmt>MPS:0000, PCX:00000</cmt>
+    <desc>MPS:0000, PCX:00000</desc>
+    <sym>Anchor</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>155.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Anchor Prohibited</name>
+    <cmt>MPS:0155, PCX:00184</cmt>
+    <desc>MPS:0155, PCX:00184</desc>
+    <sym>Anchor Prohibited</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>184.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>242.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Animal Tracks</name>
+    <cmt>MPS:0242, PCX:-0001</cmt>
+    <desc>MPS:0242, PCX:-0001</desc>
+    <sym>Animal Tracks</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>232.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>ATV</name>
+    <cmt>MPS:0232, PCX:-0001</cmt>
+    <desc>MPS:0232, PCX:-0001</desc>
+    <sym>ATV</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>163.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bait and Tackle</name>
+    <cmt>MPS:0163, PCX:00192</cmt>
+    <desc>MPS:0163, PCX:00192</desc>
+    <sym>Bait and Tackle</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>192.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>55.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Ball Park</name>
+    <cmt>MPS:0055, PCX:00169</cmt>
+    <desc>MPS:0055, PCX:00169</desc>
+    <sym>Ball Park</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>169.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>6.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bank</name>
+    <cmt>MPS:0006, PCX:00006</cmt>
+    <desc>MPS:0006, PCX:00006</desc>
+    <sym>Bank</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>6.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>13.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bar</name>
+    <cmt>MPS:0013, PCX:00013</cmt>
+    <desc>MPS:0013, PCX:00013</desc>
+    <sym>Bar</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>13.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>104.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Beach</name>
+    <cmt>MPS:0104, PCX:08244</cmt>
+    <desc>MPS:0104, PCX:08244</desc>
+    <sym>Beach</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8244.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>156.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Beacon</name>
+    <cmt>MPS:0156, PCX:00185</cmt>
+    <desc>MPS:0156, PCX:00185</desc>
+    <sym>Beacon</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>185.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>1.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bell</name>
+    <cmt>MPS:0001, PCX:00001</cmt>
+    <desc>MPS:0001, PCX:00001</desc>
+    <sym>Bell</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>233.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Big Game</name>
+    <cmt>MPS:0233, PCX:-0001</cmt>
+    <desc>MPS:0233, PCX:-0001</desc>
+    <sym>Big Game</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>149.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bike Trail</name>
+    <cmt>MPS:0149, PCX:08293</cmt>
+    <desc>MPS:0149, PCX:08293</desc>
+    <sym>Bike Trail</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8293.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>234.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Blind</name>
+    <cmt>MPS:0234, PCX:-0001</cmt>
+    <desc>MPS:0234, PCX:-0001</desc>
+    <sym>Blind</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>147.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Block, Blue</name>
+    <cmt>MPS:0147, PCX:08290</cmt>
+    <desc>MPS:0147, PCX:08290</desc>
+    <sym>Block, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8290.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>148.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Block, Green</name>
+    <cmt>MPS:0148, PCX:08291</cmt>
+    <desc>MPS:0148, PCX:08291</desc>
+    <sym>Block, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8291.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>146.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Block, Red</name>
+    <cmt>MPS:0146, PCX:08292</cmt>
+    <desc>MPS:0146, PCX:08292</desc>
+    <sym>Block, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8292.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>235.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Blood Trail</name>
+    <cmt>MPS:0235, PCX:-0001</cmt>
+    <desc>MPS:0235, PCX:-0001</desc>
+    <sym>Blood Trail</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>37.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Boat Ramp</name>
+    <cmt>MPS:0037, PCX:00150</cmt>
+    <desc>MPS:0037, PCX:00150</desc>
+    <sym>Boat Ramp</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>150.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>74.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bowling</name>
+    <cmt>MPS:0074, PCX:08205</cmt>
+    <desc>MPS:0074, PCX:08205</desc>
+    <sym>Bowling</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8205.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>93.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Bridge</name>
+    <cmt>MPS:0093, PCX:08233</cmt>
+    <desc>MPS:0093, PCX:08233</desc>
+    <sym>Bridge</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8233.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>94.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Building</name>
+    <cmt>MPS:0094, PCX:08234</cmt>
+    <desc>MPS:0094, PCX:08234</desc>
+    <sym>Building</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8234.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>17.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Buoy, White</name>
+    <cmt>MPS:0017, PCX:00017</cmt>
+    <desc>MPS:0017, PCX:00017</desc>
+    <sym>Buoy, White</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>17.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>38.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Campground</name>
+    <cmt>MPS:0038, PCX:00151</cmt>
+    <desc>MPS:0038, PCX:00151</desc>
+    <sym>Campground</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>151.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>56.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Car</name>
+    <cmt>MPS:0056, PCX:00170</cmt>
+    <desc>MPS:0056, PCX:00170</desc>
+    <sym>Car</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>170.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>75.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Car Rental</name>
+    <cmt>MPS:0075, PCX:08206</cmt>
+    <desc>MPS:0075, PCX:08206</desc>
+    <sym>Car Rental</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8206.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>76.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Car Repair</name>
+    <cmt>MPS:0076, PCX:08207</cmt>
+    <desc>MPS:0076, PCX:08207</desc>
+    <sym>Car Repair</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8207.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>95.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Cemetery</name>
+    <cmt>MPS:0095, PCX:08235</cmt>
+    <desc>MPS:0095, PCX:08235</desc>
+    <sym>Cemetery</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8235.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>96.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Church</name>
+    <cmt>MPS:0096, PCX:08236</cmt>
+    <desc>MPS:0096, PCX:08236</desc>
+    <sym>Church</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8236.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>65.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Circle with X</name>
+    <cmt>MPS:0065, PCX:00179</cmt>
+    <desc>MPS:0065, PCX:00179</desc>
+    <sym>Circle with X</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>179.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>167.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Circle, Blue</name>
+    <cmt>MPS:0167, PCX:08296</cmt>
+    <desc>MPS:0167, PCX:08296</desc>
+    <sym>Circle, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8296.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>166.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Circle, Green</name>
+    <cmt>MPS:0166, PCX:08295</cmt>
+    <desc>MPS:0166, PCX:08295</desc>
+    <sym>Circle, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8295.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>165.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Circle, Red</name>
+    <cmt>MPS:0165, PCX:08294</cmt>
+    <desc>MPS:0165, PCX:08294</desc>
+    <sym>Circle, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8294.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>72.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>City (Capitol)</name>
+    <cmt>MPS:0072, PCX:08203</cmt>
+    <desc>MPS:0072, PCX:08203</desc>
+    <sym>City (Capitol)</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8203.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>71.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>City (Large)</name>
+    <cmt>MPS:0071, PCX:08200</cmt>
+    <desc>MPS:0071, PCX:08200</desc>
+    <sym>City (Large)</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8200.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>70.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>City (Medium)</name>
+    <cmt>MPS:0070, PCX:08199</cmt>
+    <desc>MPS:0070, PCX:08199</desc>
+    <sym>City (Medium)</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8199.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>69.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>City (Small)</name>
+    <cmt>MPS:0069, PCX:08198</cmt>
+    <desc>MPS:0069, PCX:08198</desc>
+    <sym>City (Small)</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8198.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>230.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>City Hall</name>
+    <cmt>MPS:0230, PCX:-0001</cmt>
+    <desc>MPS:0230, PCX:-0001</desc>
+    <sym>City Hall</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>97.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Civil</name>
+    <cmt>MPS:0097, PCX:08237</cmt>
+    <desc>MPS:0097, PCX:08237</desc>
+    <sym>Civil</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8237.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>157.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Coast Guard</name>
+    <cmt>MPS:0157, PCX:00186</cmt>
+    <desc>MPS:0157, PCX:00186</desc>
+    <sym>Coast Guard</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>186.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>119.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Afro</name>
+    <cmt>MPS:0119, PCX:08262</cmt>
+    <desc>MPS:0119, PCX:08262</desc>
+    <sym>Contact, Afro</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8262.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>120.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Alien</name>
+    <cmt>MPS:0120, PCX:08272</cmt>
+    <desc>MPS:0120, PCX:08272</desc>
+    <sym>Contact, Alien</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8272.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>121.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Ball Cap</name>
+    <cmt>MPS:0121, PCX:08258</cmt>
+    <desc>MPS:0121, PCX:08258</desc>
+    <sym>Contact, Ball Cap</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8258.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>122.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Big Ears</name>
+    <cmt>MPS:0122, PCX:08259</cmt>
+    <desc>MPS:0122, PCX:08259</desc>
+    <sym>Contact, Big Ears</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8259.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>123.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Biker</name>
+    <cmt>MPS:0123, PCX:08271</cmt>
+    <desc>MPS:0123, PCX:08271</desc>
+    <sym>Contact, Biker</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8271.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>221.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Blonde</name>
+    <cmt>MPS:0221, PCX:-0001</cmt>
+    <desc>MPS:0221, PCX:-0001</desc>
+    <sym>Contact, Blonde</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>124.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Bug</name>
+    <cmt>MPS:0124, PCX:08273</cmt>
+    <desc>MPS:0124, PCX:08273</desc>
+    <sym>Contact, Bug</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8273.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>125.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Cat</name>
+    <cmt>MPS:0125, PCX:08274</cmt>
+    <desc>MPS:0125, PCX:08274</desc>
+    <sym>Contact, Cat</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8274.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>222.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Clown</name>
+    <cmt>MPS:0222, PCX:-0001</cmt>
+    <desc>MPS:0222, PCX:-0001</desc>
+    <sym>Contact, Clown</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>126.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Dog</name>
+    <cmt>MPS:0126, PCX:08275</cmt>
+    <desc>MPS:0126, PCX:08275</desc>
+    <sym>Contact, Dog</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8275.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>127.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Dreadlocks</name>
+    <cmt>MPS:0127, PCX:08263</cmt>
+    <desc>MPS:0127, PCX:08263</desc>
+    <sym>Contact, Dreadlocks</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8263.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>128.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Female1</name>
+    <cmt>MPS:0128, PCX:08264</cmt>
+    <desc>MPS:0128, PCX:08264</desc>
+    <sym>Contact, Female1</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8264.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>129.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Female2</name>
+    <cmt>MPS:0129, PCX:08265</cmt>
+    <desc>MPS:0129, PCX:08265</desc>
+    <sym>Contact, Female2</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8265.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>130.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Female3</name>
+    <cmt>MPS:0130, PCX:08266</cmt>
+    <desc>MPS:0130, PCX:08266</desc>
+    <sym>Contact, Female3</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8266.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>223.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Glasses</name>
+    <cmt>MPS:0223, PCX:-0001</cmt>
+    <desc>MPS:0223, PCX:-0001</desc>
+    <sym>Contact, Glasses</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>131.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Goatee</name>
+    <cmt>MPS:0131, PCX:08261</cmt>
+    <desc>MPS:0131, PCX:08261</desc>
+    <sym>Contact, Goatee</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8261.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>132.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Kung-Fu</name>
+    <cmt>MPS:0132, PCX:08268</cmt>
+    <desc>MPS:0132, PCX:08268</desc>
+    <sym>Contact, Kung-Fu</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8268.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>224.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Panda</name>
+    <cmt>MPS:0224, PCX:-0001</cmt>
+    <desc>MPS:0224, PCX:-0001</desc>
+    <sym>Contact, Panda</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>133.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Pig</name>
+    <cmt>MPS:0133, PCX:08276</cmt>
+    <desc>MPS:0133, PCX:08276</desc>
+    <sym>Contact, Pig</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8276.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>134.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Pirate</name>
+    <cmt>MPS:0134, PCX:08270</cmt>
+    <desc>MPS:0134, PCX:08270</desc>
+    <sym>Contact, Pirate</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8270.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>135.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Ranger</name>
+    <cmt>MPS:0135, PCX:08267</cmt>
+    <desc>MPS:0135, PCX:08267</desc>
+    <sym>Contact, Ranger</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8267.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>136.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Smiley</name>
+    <cmt>MPS:0136, PCX:08257</cmt>
+    <desc>MPS:0136, PCX:08257</desc>
+    <sym>Contact, Smiley</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8257.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>137.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Spike</name>
+    <cmt>MPS:0137, PCX:08260</cmt>
+    <desc>MPS:0137, PCX:08260</desc>
+    <sym>Contact, Spike</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8260.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>138.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Contact, Sumo</name>
+    <cmt>MPS:0138, PCX:08269</cmt>
+    <desc>MPS:0138, PCX:08269</desc>
+    <sym>Contact, Sumo</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8269.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Contact</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>52.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Controlled Area</name>
+    <cmt>MPS:0052, PCX:00165</cmt>
+    <desc>MPS:0052, PCX:00165</desc>
+    <sym>Controlled Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>165.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>89.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Convenience Store</name>
+    <cmt>MPS:0089, PCX:08220</cmt>
+    <desc>MPS:0089, PCX:08220</desc>
+    <sym>Convenience Store</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8220.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>236.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Cover</name>
+    <cmt>MPS:0236, PCX:-0001</cmt>
+    <desc>MPS:0236, PCX:-0001</desc>
+    <sym>Cover</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>237.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Covey</name>
+    <cmt>MPS:0237, PCX:-0001</cmt>
+    <desc>MPS:0237, PCX:-0001</desc>
+    <sym>Covey</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>98.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Crossing</name>
+    <cmt>MPS:0098, PCX:08238</cmt>
+    <desc>MPS:0098, PCX:08238</desc>
+    <sym>Crossing</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8238.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>500.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 0</name>
+    <cmt>MPS:0500, PCX:07680</cmt>
+    <desc>MPS:0500, PCX:07680</desc>
+    <sym>Custom 0</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7680.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>501.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 1</name>
+    <cmt>MPS:0501, PCX:07681</cmt>
+    <desc>MPS:0501, PCX:07681</desc>
+    <sym>Custom 1</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7681.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>502.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 2</name>
+    <cmt>MPS:0502, PCX:07682</cmt>
+    <desc>MPS:0502, PCX:07682</desc>
+    <sym>Custom 2</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7682.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>503.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 3</name>
+    <cmt>MPS:0503, PCX:07683</cmt>
+    <desc>MPS:0503, PCX:07683</desc>
+    <sym>Custom 3</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7683.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>504.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 4</name>
+    <cmt>MPS:0504, PCX:07684</cmt>
+    <desc>MPS:0504, PCX:07684</desc>
+    <sym>Custom 4</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7684.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>505.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 5</name>
+    <cmt>MPS:0505, PCX:07685</cmt>
+    <desc>MPS:0505, PCX:07685</desc>
+    <sym>Custom 5</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7685.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>506.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 6</name>
+    <cmt>MPS:0506, PCX:07686</cmt>
+    <desc>MPS:0506, PCX:07686</desc>
+    <sym>Custom 6</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7686.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>507.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Custom 7</name>
+    <cmt>MPS:0507, PCX:07687</cmt>
+    <desc>MPS:0507, PCX:07687</desc>
+    <sym>Custom 7</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7687.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Custom</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>51.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Dam</name>
+    <cmt>MPS:0051, PCX:00164</cmt>
+    <desc>MPS:0051, PCX:00164</desc>
+    <sym>Dam</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>164.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>53.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Danger Area</name>
+    <cmt>MPS:0053, PCX:00166</cmt>
+    <desc>MPS:0053, PCX:00166</desc>
+    <sym>Danger Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>166.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>87.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Department Store</name>
+    <cmt>MPS:0087, PCX:08218</cmt>
+    <desc>MPS:0087, PCX:08218</desc>
+    <sym>Department Store</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8218.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>168.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Diamond, Blue</name>
+    <cmt>MPS:0168, PCX:08299</cmt>
+    <desc>MPS:0168, PCX:08299</desc>
+    <sym>Diamond, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8299.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>2.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Diamond, Green</name>
+    <cmt>MPS:0002, PCX:00002</cmt>
+    <desc>MPS:0002, PCX:00002</desc>
+    <sym>Diamond, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>2.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>3.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Diamond, Red</name>
+    <cmt>MPS:0003, PCX:00003</cmt>
+    <desc>MPS:0003, PCX:00003</desc>
+    <sym>Diamond, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>3.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>4.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Diver Down Flag 1</name>
+    <cmt>MPS:0004, PCX:00004</cmt>
+    <desc>MPS:0004, PCX:00004</desc>
+    <sym>Diver Down Flag 1</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>4.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>5.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Diver Down Flag 2</name>
+    <cmt>MPS:0005, PCX:00005</cmt>
+    <desc>MPS:0005, PCX:00005</desc>
+    <sym>Diver Down Flag 2</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>5.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>161.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Dock</name>
+    <cmt>MPS:0161, PCX:00190</cmt>
+    <desc>MPS:0161, PCX:00190</desc>
+    <sym>Dock</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>190.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>35.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Dot, White</name>
+    <cmt>MPS:0035, PCX:00036</cmt>
+    <desc>MPS:0035, PCX:00036</desc>
+    <sym>Dot, White</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>36.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>160.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Dropoff</name>
+    <cmt>MPS:0160, PCX:00189</cmt>
+    <desc>MPS:0160, PCX:00189</desc>
+    <sym>Dropoff</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>189.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>63.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Exit</name>
+    <cmt>MPS:0063, PCX:00177</cmt>
+    <desc>MPS:0063, PCX:00177</desc>
+    <sym>Exit</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>177.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>77.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Fast Food</name>
+    <cmt>MPS:0077, PCX:08208</cmt>
+    <desc>MPS:0077, PCX:08208</desc>
+    <sym>Fast Food</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8208.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>7.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Fishing Area</name>
+    <cmt>MPS:0007, PCX:00007</cmt>
+    <desc>MPS:0007, PCX:00007</desc>
+    <sym>Fishing Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>7.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>150.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Fishing Hot Spot Facility</name>
+    <cmt>MPS:0150, PCX:00181</cmt>
+    <desc>MPS:0150, PCX:00181</desc>
+    <sym>Fishing Hot Spot Facility</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>181.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>78.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Fitness Center</name>
+    <cmt>MPS:0078, PCX:08209</cmt>
+    <desc>MPS:0078, PCX:08209</desc>
+    <sym>Fitness Center</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8209.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>64.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Flag</name>
+    <cmt>MPS:0064, PCX:00178</cmt>
+    <desc>MPS:0064, PCX:00178</desc>
+    <sym>Flag</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>178.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>141.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Flag, Blue</name>
+    <cmt>MPS:0141, PCX:08284</cmt>
+    <desc>MPS:0141, PCX:08284</desc>
+    <sym>Flag, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8284.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>142.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Flag, Green</name>
+    <cmt>MPS:0142, PCX:08285</cmt>
+    <desc>MPS:0142, PCX:08285</desc>
+    <sym>Flag, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8285.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>140.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Flag, Red</name>
+    <cmt>MPS:0140, PCX:08286</cmt>
+    <desc>MPS:0140, PCX:08286</desc>
+    <sym>Flag, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8286.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>238.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Food Source</name>
+    <cmt>MPS:0238, PCX:-0001</cmt>
+    <desc>MPS:0238, PCX:-0001</desc>
+    <sym>Food Source</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>105.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Forest</name>
+    <cmt>MPS:0105, PCX:08245</cmt>
+    <desc>MPS:0105, PCX:08245</desc>
+    <sym>Forest</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8245.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>239.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Furbearer</name>
+    <cmt>MPS:0239, PCX:-0001</cmt>
+    <desc>MPS:0239, PCX:-0001</desc>
+    <sym>Furbearer</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>8.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Gas Station</name>
+    <cmt>MPS:0008, PCX:00008</cmt>
+    <desc>MPS:0008, PCX:00008</desc>
+    <sym>Gas Station</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>117.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Geocache</name>
+    <cmt>MPS:0117, PCX:08255</cmt>
+    <desc>MPS:0117, PCX:08255</desc>
+    <sym>Geocache</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8255.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>118.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Geocache Found</name>
+    <cmt>MPS:0118, PCX:08256</cmt>
+    <desc>MPS:0118, PCX:08256</desc>
+    <sym>Geocache Found</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8256.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>99.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Ghost Town</name>
+    <cmt>MPS:0099, PCX:08239</cmt>
+    <desc>MPS:0099, PCX:08239</desc>
+    <sym>Ghost Town</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8239.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>113.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Glider Area</name>
+    <cmt>MPS:0113, PCX:16393</cmt>
+    <desc>MPS:0113, PCX:16393</desc>
+    <sym>Glider Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16393.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>68.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Golf Course</name>
+    <cmt>MPS:0068, PCX:08197</cmt>
+    <desc>MPS:0068, PCX:08197</desc>
+    <sym>Golf Course</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8197.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>229.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Ground Transportation</name>
+    <cmt>MPS:0229, PCX:-0001</cmt>
+    <desc>MPS:0229, PCX:-0001</desc>
+    <sym>Ground Transportation</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>108.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Heliport</name>
+    <cmt>MPS:0108, PCX:16388</cmt>
+    <desc>MPS:0108, PCX:16388</desc>
+    <sym>Heliport</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16388.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>9.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Horn</name>
+    <cmt>MPS:0009, PCX:00009</cmt>
+    <desc>MPS:0009, PCX:00009</desc>
+    <sym>Horn</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>9.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>57.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Hunting Area</name>
+    <cmt>MPS:0057, PCX:00171</cmt>
+    <desc>MPS:0057, PCX:00171</desc>
+    <sym>Hunting Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>171.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>153.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Ice Skating</name>
+    <cmt>MPS:0153, PCX:08252</cmt>
+    <desc>MPS:0153, PCX:08252</desc>
+    <sym>Ice Skating</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8252.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>44.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Information</name>
+    <cmt>MPS:0044, PCX:00157</cmt>
+    <desc>MPS:0044, PCX:00157</desc>
+    <sym>Information</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>157.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>178.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter A, Blue</name>
+    <cmt>MPS:0178, PCX:08317</cmt>
+    <desc>MPS:0178, PCX:08317</desc>
+    <sym>Letter A, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8317.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>177.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter A, Green</name>
+    <cmt>MPS:0177, PCX:08313</cmt>
+    <desc>MPS:0177, PCX:08313</desc>
+    <sym>Letter A, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8313.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>176.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter A, Red</name>
+    <cmt>MPS:0176, PCX:08309</cmt>
+    <desc>MPS:0176, PCX:08309</desc>
+    <sym>Letter A, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8309.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>181.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter B, Blue</name>
+    <cmt>MPS:0181, PCX:08318</cmt>
+    <desc>MPS:0181, PCX:08318</desc>
+    <sym>Letter B, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8318.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>180.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter B, Green</name>
+    <cmt>MPS:0180, PCX:08315</cmt>
+    <desc>MPS:0180, PCX:08315</desc>
+    <sym>Letter B, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8315.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>179.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter B, Red</name>
+    <cmt>MPS:0179, PCX:08310</cmt>
+    <desc>MPS:0179, PCX:08310</desc>
+    <sym>Letter B, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8310.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>184.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter C, Blue</name>
+    <cmt>MPS:0184, PCX:08319</cmt>
+    <desc>MPS:0184, PCX:08319</desc>
+    <sym>Letter C, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8319.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>183.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter C, Green</name>
+    <cmt>MPS:0183, PCX:08314</cmt>
+    <desc>MPS:0183, PCX:08314</desc>
+    <sym>Letter C, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8314.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>182.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter C, Red</name>
+    <cmt>MPS:0182, PCX:08311</cmt>
+    <desc>MPS:0182, PCX:08311</desc>
+    <sym>Letter C, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8311.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>187.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter D, Blue</name>
+    <cmt>MPS:0187, PCX:08320</cmt>
+    <desc>MPS:0187, PCX:08320</desc>
+    <sym>Letter D, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8320.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>186.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter D, Green</name>
+    <cmt>MPS:0186, PCX:08316</cmt>
+    <desc>MPS:0186, PCX:08316</desc>
+    <sym>Letter D, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8316.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>185.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letter D, Red</name>
+    <cmt>MPS:0185, PCX:08312</cmt>
+    <desc>MPS:0185, PCX:08312</desc>
+    <sym>Letter D, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8312.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Letter</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>226.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Letterbox Cache</name>
+    <cmt>MPS:0226, PCX:-0001</cmt>
+    <desc>MPS:0226, PCX:-0001</desc>
+    <sym>Letterbox Cache</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>100.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Levee</name>
+    <cmt>MPS:0100, PCX:08240</cmt>
+    <desc>MPS:0100, PCX:08240</desc>
+    <sym>Levee</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8240.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>228.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Library</name>
+    <cmt>MPS:0228, PCX:-0001</cmt>
+    <desc>MPS:0228, PCX:-0001</desc>
+    <sym>Library</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>12.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Light</name>
+    <cmt>MPS:0012, PCX:00012</cmt>
+    <desc>MPS:0012, PCX:00012</desc>
+    <sym>Light</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>12.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>90.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Live Theater</name>
+    <cmt>MPS:0090, PCX:08221</cmt>
+    <desc>MPS:0090, PCX:08221</desc>
+    <sym>Live Theater</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8221.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>240.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Lodge</name>
+    <cmt>MPS:0240, PCX:-0001</cmt>
+    <desc>MPS:0240, PCX:-0001</desc>
+    <sym>Lodge</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>59.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Lodging</name>
+    <cmt>MPS:0059, PCX:00173</cmt>
+    <desc>MPS:0059, PCX:00173</desc>
+    <sym>Lodging</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>173.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>20.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Man Overboard</name>
+    <cmt>MPS:0020, PCX:00021</cmt>
+    <desc>MPS:0020, PCX:00021</desc>
+    <sym>Man Overboard</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>21.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>162.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Marina</name>
+    <cmt>MPS:0162, PCX:00191</cmt>
+    <desc>MPS:0162, PCX:00191</desc>
+    <sym>Marina</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>191.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>43.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Medical Facility</name>
+    <cmt>MPS:0043, PCX:00156</cmt>
+    <desc>MPS:0043, PCX:00156</desc>
+    <sym>Medical Facility</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>156.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>66.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Mile Marker</name>
+    <cmt>MPS:0066, PCX:08195</cmt>
+    <desc>MPS:0066, PCX:08195</desc>
+    <sym>Mile Marker</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8195.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>101.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Military</name>
+    <cmt>MPS:0101, PCX:08241</cmt>
+    <desc>MPS:0101, PCX:08241</desc>
+    <sym>Military</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8241.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>60.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Mine</name>
+    <cmt>MPS:0060, PCX:00174</cmt>
+    <desc>MPS:0060, PCX:00174</desc>
+    <sym>Mine</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>174.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>79.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Movie Theater</name>
+    <cmt>MPS:0079, PCX:08210</cmt>
+    <desc>MPS:0079, PCX:08210</desc>
+    <sym>Movie Theater</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8210.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>225.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Multi-Cache</name>
+    <cmt>MPS:0225, PCX:08217</cmt>
+    <desc>MPS:0225, PCX:08217</desc>
+    <sym>Stadium</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8217.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>80.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Museum</name>
+    <cmt>MPS:0080, PCX:08211</cmt>
+    <desc>MPS:0080, PCX:08211</desc>
+    <sym>Museum</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8211.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>21.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Amber</name>
+    <cmt>MPS:0021, PCX:00022</cmt>
+    <desc>MPS:0021, PCX:00022</desc>
+    <sym>Navaid, Amber</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>22.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>22.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Black</name>
+    <cmt>MPS:0022, PCX:00023</cmt>
+    <desc>MPS:0022, PCX:00023</desc>
+    <sym>Navaid, Black</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>23.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>23.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Blue</name>
+    <cmt>MPS:0023, PCX:00024</cmt>
+    <desc>MPS:0023, PCX:00024</desc>
+    <sym>Navaid, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>24.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>24.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Green</name>
+    <cmt>MPS:0024, PCX:00025</cmt>
+    <desc>MPS:0024, PCX:00025</desc>
+    <sym>Navaid, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>25.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>25.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Green/Red</name>
+    <cmt>MPS:0025, PCX:00026</cmt>
+    <desc>MPS:0025, PCX:00026</desc>
+    <sym>Navaid, Green/Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>26.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>26.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Green/White</name>
+    <cmt>MPS:0026, PCX:00027</cmt>
+    <desc>MPS:0026, PCX:00027</desc>
+    <sym>Navaid, Green/White</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>27.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>27.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Orange</name>
+    <cmt>MPS:0027, PCX:00028</cmt>
+    <desc>MPS:0027, PCX:00028</desc>
+    <sym>Navaid, Orange</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>28.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>28.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Red</name>
+    <cmt>MPS:0028, PCX:00029</cmt>
+    <desc>MPS:0028, PCX:00029</desc>
+    <sym>Navaid, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>29.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>29.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Red/Green</name>
+    <cmt>MPS:0029, PCX:00030</cmt>
+    <desc>MPS:0029, PCX:00030</desc>
+    <sym>Navaid, Red/Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>30.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>30.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Red/White</name>
+    <cmt>MPS:0030, PCX:00031</cmt>
+    <desc>MPS:0030, PCX:00031</desc>
+    <sym>Navaid, Red/White</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>31.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>31.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, Violet</name>
+    <cmt>MPS:0031, PCX:00032</cmt>
+    <desc>MPS:0031, PCX:00032</desc>
+    <sym>Navaid, Violet</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>32.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>32.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, White</name>
+    <cmt>MPS:0032, PCX:00033</cmt>
+    <desc>MPS:0032, PCX:00033</desc>
+    <sym>Navaid, White</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>33.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>33.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, White/Green</name>
+    <cmt>MPS:0033, PCX:00034</cmt>
+    <desc>MPS:0033, PCX:00034</desc>
+    <sym>Navaid, White/Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>34.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>34.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Navaid, White/Red</name>
+    <cmt>MPS:0034, PCX:00035</cmt>
+    <desc>MPS:0034, PCX:00035</desc>
+    <sym>Navaid, White/Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>35.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>190.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 0, Blue</name>
+    <cmt>MPS:0190, PCX:08341</cmt>
+    <desc>MPS:0190, PCX:08341</desc>
+    <sym>Number 0, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8341.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>189.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 0, Green</name>
+    <cmt>MPS:0189, PCX:08331</cmt>
+    <desc>MPS:0189, PCX:08331</desc>
+    <sym>Number 0, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8331.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>188.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 0, Red</name>
+    <cmt>MPS:0188, PCX:08321</cmt>
+    <desc>MPS:0188, PCX:08321</desc>
+    <sym>Number 0, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8321.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>193.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 1, Blue</name>
+    <cmt>MPS:0193, PCX:08342</cmt>
+    <desc>MPS:0193, PCX:08342</desc>
+    <sym>Number 1, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8342.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>192.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 1, Green</name>
+    <cmt>MPS:0192, PCX:08332</cmt>
+    <desc>MPS:0192, PCX:08332</desc>
+    <sym>Number 1, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8332.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>191.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 1, Red</name>
+    <cmt>MPS:0191, PCX:08322</cmt>
+    <desc>MPS:0191, PCX:08322</desc>
+    <sym>Number 1, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8322.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>196.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 2, Blue</name>
+    <cmt>MPS:0196, PCX:08343</cmt>
+    <desc>MPS:0196, PCX:08343</desc>
+    <sym>Number 2, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8343.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>195.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 2, Green</name>
+    <cmt>MPS:0195, PCX:08333</cmt>
+    <desc>MPS:0195, PCX:08333</desc>
+    <sym>Number 2, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8333.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>194.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 2, Red</name>
+    <cmt>MPS:0194, PCX:08323</cmt>
+    <desc>MPS:0194, PCX:08323</desc>
+    <sym>Number 2, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8323.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>199.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 3, Blue</name>
+    <cmt>MPS:0199, PCX:08344</cmt>
+    <desc>MPS:0199, PCX:08344</desc>
+    <sym>Number 3, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8344.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>198.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 3, Green</name>
+    <cmt>MPS:0198, PCX:08334</cmt>
+    <desc>MPS:0198, PCX:08334</desc>
+    <sym>Number 3, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8334.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>197.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 3, Red</name>
+    <cmt>MPS:0197, PCX:08324</cmt>
+    <desc>MPS:0197, PCX:08324</desc>
+    <sym>Number 3, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8324.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>202.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 4, Blue</name>
+    <cmt>MPS:0202, PCX:08345</cmt>
+    <desc>MPS:0202, PCX:08345</desc>
+    <sym>Number 4, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8345.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>201.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 4, Green</name>
+    <cmt>MPS:0201, PCX:08335</cmt>
+    <desc>MPS:0201, PCX:08335</desc>
+    <sym>Number 4, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8335.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>200.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 4, Red</name>
+    <cmt>MPS:0200, PCX:08325</cmt>
+    <desc>MPS:0200, PCX:08325</desc>
+    <sym>Number 4, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8325.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>205.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 5, Blue</name>
+    <cmt>MPS:0205, PCX:08346</cmt>
+    <desc>MPS:0205, PCX:08346</desc>
+    <sym>Number 5, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8346.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>204.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 5, Green</name>
+    <cmt>MPS:0204, PCX:08336</cmt>
+    <desc>MPS:0204, PCX:08336</desc>
+    <sym>Number 5, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8336.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>203.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 5, Red</name>
+    <cmt>MPS:0203, PCX:08326</cmt>
+    <desc>MPS:0203, PCX:08326</desc>
+    <sym>Number 5, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8326.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>208.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 6, Blue</name>
+    <cmt>MPS:0208, PCX:08347</cmt>
+    <desc>MPS:0208, PCX:08347</desc>
+    <sym>Number 6, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8347.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>207.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 6, Green</name>
+    <cmt>MPS:0207, PCX:08337</cmt>
+    <desc>MPS:0207, PCX:08337</desc>
+    <sym>Number 6, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8337.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>206.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 6, Red</name>
+    <cmt>MPS:0206, PCX:08327</cmt>
+    <desc>MPS:0206, PCX:08327</desc>
+    <sym>Number 6, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8327.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>211.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 7, Blue</name>
+    <cmt>MPS:0211, PCX:08348</cmt>
+    <desc>MPS:0211, PCX:08348</desc>
+    <sym>Number 7, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8348.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>210.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 7, Green</name>
+    <cmt>MPS:0210, PCX:08338</cmt>
+    <desc>MPS:0210, PCX:08338</desc>
+    <sym>Number 7, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8338.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>209.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 7, Red</name>
+    <cmt>MPS:0209, PCX:08328</cmt>
+    <desc>MPS:0209, PCX:08328</desc>
+    <sym>Number 7, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8328.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>214.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 8, Blue</name>
+    <cmt>MPS:0214, PCX:08349</cmt>
+    <desc>MPS:0214, PCX:08349</desc>
+    <sym>Number 8, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8349.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>213.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 8, Green</name>
+    <cmt>MPS:0213, PCX:08339</cmt>
+    <desc>MPS:0213, PCX:08339</desc>
+    <sym>Number 8, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8339.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>212.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 8, Red</name>
+    <cmt>MPS:0212, PCX:08329</cmt>
+    <desc>MPS:0212, PCX:08329</desc>
+    <sym>Number 8, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8329.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>217.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 9, Blue</name>
+    <cmt>MPS:0217, PCX:08350</cmt>
+    <desc>MPS:0217, PCX:08350</desc>
+    <sym>Number 9, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8350.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>216.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 9, Green</name>
+    <cmt>MPS:0216, PCX:08340</cmt>
+    <desc>MPS:0216, PCX:08340</desc>
+    <sym>Number 9, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8340.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>215.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Number 9, Red</name>
+    <cmt>MPS:0215, PCX:08330</cmt>
+    <desc>MPS:0215, PCX:08330</desc>
+    <sym>Number 9, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8330.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Number</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>102.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Oil Field</name>
+    <cmt>MPS:0102, PCX:08242</cmt>
+    <desc>MPS:0102, PCX:08242</desc>
+    <sym>Oil Field</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8242.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>171.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Oval, Blue</name>
+    <cmt>MPS:0171, PCX:08302</cmt>
+    <desc>MPS:0171, PCX:08302</desc>
+    <sym>Oval, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8302.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>170.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Oval, Green</name>
+    <cmt>MPS:0170, PCX:08301</cmt>
+    <desc>MPS:0170, PCX:08301</desc>
+    <sym>Oval, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8301.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>169.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Oval, Red</name>
+    <cmt>MPS:0169, PCX:08300</cmt>
+    <desc>MPS:0169, PCX:08300</desc>
+    <sym>Oval, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8300.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>115.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Parachute Area</name>
+    <cmt>MPS:0115, PCX:16395</cmt>
+    <desc>MPS:0115, PCX:16395</desc>
+    <sym>Parachute Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16395.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>46.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Park</name>
+    <cmt>MPS:0046, PCX:00159</cmt>
+    <desc>MPS:0046, PCX:00159</desc>
+    <sym>Park</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>159.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>45.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Parking Area</name>
+    <cmt>MPS:0045, PCX:00158</cmt>
+    <desc>MPS:0045, PCX:00158</desc>
+    <sym>Parking Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>158.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>81.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Pharmacy</name>
+    <cmt>MPS:0081, PCX:08212</cmt>
+    <desc>MPS:0081, PCX:08212</desc>
+    <sym>Pharmacy</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8212.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>47.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Picnic Area</name>
+    <cmt>MPS:0047, PCX:00160</cmt>
+    <desc>MPS:0047, PCX:00160</desc>
+    <sym>Picnic Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>160.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>144.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Pin, Blue</name>
+    <cmt>MPS:0144, PCX:08287</cmt>
+    <desc>MPS:0144, PCX:08287</desc>
+    <sym>Pin, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8287.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>145.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Pin, Green</name>
+    <cmt>MPS:0145, PCX:08288</cmt>
+    <desc>MPS:0145, PCX:08288</desc>
+    <sym>Pin, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8288.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>143.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Pin, Red</name>
+    <cmt>MPS:0143, PCX:08289</cmt>
+    <desc>MPS:0143, PCX:08289</desc>
+    <sym>Pin, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8289.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>82.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Pizza</name>
+    <cmt>MPS:0082, PCX:08213</cmt>
+    <desc>MPS:0082, PCX:08213</desc>
+    <sym>Pizza</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8213.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>151.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Police Station</name>
+    <cmt>MPS:0151, PCX:08249</cmt>
+    <desc>MPS:0151, PCX:08249</desc>
+    <sym>Police Station</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8249.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>83.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Post Office</name>
+    <cmt>MPS:0083, PCX:08214</cmt>
+    <desc>MPS:0083, PCX:08214</desc>
+    <sym>Post Office</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8214.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>109.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Private Field</name>
+    <cmt>MPS:0109, PCX:16389</cmt>
+    <desc>MPS:0109, PCX:16389</desc>
+    <sym>Private Field</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16389.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>227.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Puzzle Cache</name>
+    <cmt>MPS:0227, PCX:-0001</cmt>
+    <desc>MPS:0227, PCX:-0001</desc>
+    <sym>Puzzle Cache</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>36.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Radio Beacon</name>
+    <cmt>MPS:0036, PCX:00037</cmt>
+    <desc>MPS:0036, PCX:00037</desc>
+    <sym>Radio Beacon</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>37.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Navigation Aid</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>174.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Rectangle, Blue</name>
+    <cmt>MPS:0174, PCX:08305</cmt>
+    <desc>MPS:0174, PCX:08305</desc>
+    <sym>Rectangle, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8305.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>173.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Rectangle, Green</name>
+    <cmt>MPS:0173, PCX:08304</cmt>
+    <desc>MPS:0173, PCX:08304</desc>
+    <sym>Rectangle, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8304.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>172.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Rectangle, Red</name>
+    <cmt>MPS:0172, PCX:08303</cmt>
+    <desc>MPS:0172, PCX:08303</desc>
+    <sym>Rectangle, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8303.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>158.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Reef</name>
+    <cmt>MPS:0158, PCX:00187</cmt>
+    <desc>MPS:0158, PCX:00187</desc>
+    <sym>Reef</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>187.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>10.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Residence</name>
+    <cmt>MPS:0010, PCX:00010</cmt>
+    <desc>MPS:0010, PCX:00010</desc>
+    <sym>Residence</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>10.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>11.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Restaurant</name>
+    <cmt>MPS:0011, PCX:00011</cmt>
+    <desc>MPS:0011, PCX:00011</desc>
+    <sym>Restaurant</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>11.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>54.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Restricted Area</name>
+    <cmt>MPS:0054, PCX:00167</cmt>
+    <desc>MPS:0054, PCX:00167</desc>
+    <sym>Restricted Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>167.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>39.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Restroom</name>
+    <cmt>MPS:0039, PCX:00152</cmt>
+    <desc>MPS:0039, PCX:00152</desc>
+    <sym>Restroom</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>152.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>84.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>RV Park</name>
+    <cmt>MPS:0084, PCX:08215</cmt>
+    <desc>MPS:0084, PCX:08215</desc>
+    <sym>RV Park</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8215.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>91.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Scales</name>
+    <cmt>MPS:0091, PCX:08226</cmt>
+    <desc>MPS:0091, PCX:08226</desc>
+    <sym>Scales</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8226.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>48.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Scenic Area</name>
+    <cmt>MPS:0048, PCX:00161</cmt>
+    <desc>MPS:0048, PCX:00161</desc>
+    <sym>Scenic Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>161.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>85.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>School</name>
+    <cmt>MPS:0085, PCX:08216</cmt>
+    <desc>MPS:0085, PCX:08216</desc>
+    <sym>School</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8216.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>116.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Seaplane Base</name>
+    <cmt>MPS:0116, PCX:16402</cmt>
+    <desc>MPS:0116, PCX:16402</desc>
+    <sym>Seaplane Base</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16402.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>19.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Shipwreck</name>
+    <cmt>MPS:0019, PCX:00019</cmt>
+    <desc>MPS:0019, PCX:00019</desc>
+    <sym>Shipwreck</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>19.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>58.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Shopping Center</name>
+    <cmt>MPS:0058, PCX:00172</cmt>
+    <desc>MPS:0058, PCX:00172</desc>
+    <sym>Shopping Center</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>172.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>112.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Short Tower</name>
+    <cmt>MPS:0112, PCX:16392</cmt>
+    <desc>MPS:0112, PCX:16392</desc>
+    <sym>Short Tower</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16392.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>40.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Shower</name>
+    <cmt>MPS:0040, PCX:00153</cmt>
+    <desc>MPS:0040, PCX:00153</desc>
+    <sym>Shower</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>153.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>152.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Ski Resort</name>
+    <cmt>MPS:0152, PCX:08251</cmt>
+    <desc>MPS:0152, PCX:08251</desc>
+    <sym>Ski Resort</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8251.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>49.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Skiing Area</name>
+    <cmt>MPS:0049, PCX:00162</cmt>
+    <desc>MPS:0049, PCX:00162</desc>
+    <sym>Skiing Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>162.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>14.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Skull and Crossbones</name>
+    <cmt>MPS:0014, PCX:00014</cmt>
+    <desc>MPS:0014, PCX:00014</desc>
+    <sym>Skull and Crossbones</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>14.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>241.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Small Game</name>
+    <cmt>MPS:0241, PCX:-0001</cmt>
+    <desc>MPS:0241, PCX:-0001</desc>
+    <sym>Small Game</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>110.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Soft Field</name>
+    <cmt>MPS:0110, PCX:16390</cmt>
+    <desc>MPS:0110, PCX:16390</desc>
+    <sym>Soft Field</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16390.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>175.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Square, Blue</name>
+    <cmt>MPS:0175, PCX:08308</cmt>
+    <desc>MPS:0175, PCX:08308</desc>
+    <sym>Square, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8308.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>15.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Square, Green</name>
+    <cmt>MPS:0015, PCX:00015</cmt>
+    <desc>MPS:0015, PCX:00015</desc>
+    <sym>Square, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>15.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>16.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Square, Red</name>
+    <cmt>MPS:0016, PCX:00016</cmt>
+    <desc>MPS:0016, PCX:00016</desc>
+    <sym>Square, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>86.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Stadium</name>
+    <cmt>MPS:0086, PCX:08217</cmt>
+    <desc>MPS:0086, PCX:08217</desc>
+    <sym>Stadium</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8217.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>164.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Stump</name>
+    <cmt>MPS:0164, PCX:00193</cmt>
+    <desc>MPS:0164, PCX:00193</desc>
+    <sym>Stump</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>193.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>106.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Summit</name>
+    <cmt>MPS:0106, PCX:08246</cmt>
+    <desc>MPS:0106, PCX:08246</desc>
+    <sym>Summit</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8246.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>50.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Swimming Area</name>
+    <cmt>MPS:0050, PCX:00163</cmt>
+    <desc>MPS:0050, PCX:00163</desc>
+    <sym>Swimming Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>163.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>111.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Tall Tower</name>
+    <cmt>MPS:0111, PCX:16391</cmt>
+    <desc>MPS:0111, PCX:16391</desc>
+    <sym>Tall Tower</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16391.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>42.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Telephone</name>
+    <cmt>MPS:0042, PCX:00155</cmt>
+    <desc>MPS:0042, PCX:00155</desc>
+    <sym>Telephone</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>155.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>92.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Toll Booth</name>
+    <cmt>MPS:0092, PCX:08227</cmt>
+    <desc>MPS:0092, PCX:08227</desc>
+    <sym>Toll Booth</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8227.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>67.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>TracBack Point</name>
+    <cmt>MPS:0067, PCX:08196</cmt>
+    <desc>MPS:0067, PCX:08196</desc>
+    <sym>TracBack Point</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8196.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>61.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Trail Head</name>
+    <cmt>MPS:0061, PCX:00175</cmt>
+    <desc>MPS:0061, PCX:00175</desc>
+    <sym>Trail Head</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>175.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>244.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Tree Stand</name>
+    <cmt>MPS:0244, PCX:-0001</cmt>
+    <desc>MPS:0244, PCX:-0001</desc>
+    <sym>Tree Stand</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>243.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Treed Quarry</name>
+    <cmt>MPS:0243, PCX:-0001</cmt>
+    <desc>MPS:0243, PCX:-0001</desc>
+    <sym>Treed Quarry</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>218.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Triangle, Blue</name>
+    <cmt>MPS:0218, PCX:08351</cmt>
+    <desc>MPS:0218, PCX:08351</desc>
+    <sym>Triangle, Blue</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8351.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>219.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Triangle, Green</name>
+    <cmt>MPS:0219, PCX:08352</cmt>
+    <desc>MPS:0219, PCX:08352</desc>
+    <sym>Triangle, Green</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8352.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>220.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Triangle, Red</name>
+    <cmt>MPS:0220, PCX:08353</cmt>
+    <desc>MPS:0220, PCX:08353</desc>
+    <sym>Triangle, Red</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8353.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>245.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Truck</name>
+    <cmt>MPS:0245, PCX:-0001</cmt>
+    <desc>MPS:0245, PCX:-0001</desc>
+    <sym>Truck</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Outdoor</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>62.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Truck Stop</name>
+    <cmt>MPS:0062, PCX:00176</cmt>
+    <desc>MPS:0062, PCX:00176</desc>
+    <sym>Truck Stop</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>176.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>103.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Tunnel</name>
+    <cmt>MPS:0103, PCX:08243</cmt>
+    <desc>MPS:0103, PCX:08243</desc>
+    <sym>Tunnel</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8243.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>114.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Ultralight Area</name>
+    <cmt>MPS:0114, PCX:16394</cmt>
+    <desc>MPS:0114, PCX:16394</desc>
+    <sym>Ultralight Area</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>16394.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Aviation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>246.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Upland Game</name>
+    <cmt>MPS:0246, PCX:-0001</cmt>
+    <desc>MPS:0246, PCX:-0001</desc>
+    <sym>Upland Game</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>139.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Water Hydrant</name>
+    <cmt>MPS:0139, PCX:08282</cmt>
+    <desc>MPS:0139, PCX:08282</desc>
+    <sym>Water Hydrant</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8282.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Civil</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>248.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Water Source</name>
+    <cmt>MPS:0248, PCX:-0001</cmt>
+    <desc>MPS:0248, PCX:-0001</desc>
+    <sym>Water Source</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>247.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Waterfowl</name>
+    <cmt>MPS:0247, PCX:-0001</cmt>
+    <desc>MPS:0247, PCX:-0001</desc>
+    <sym>Waterfowl</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Hunting</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>18.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Waypoint</name>
+    <cmt>MPS:0018, PCX:00018</cmt>
+    <desc>MPS:0018, PCX:00018</desc>
+    <sym>Waypoint</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>18.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marker</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>159.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Weed Bed</name>
+    <cmt>MPS:0159, PCX:00188</cmt>
+    <desc>MPS:0159, PCX:00188</desc>
+    <sym>Weed Bed</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>188.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Marine</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>231.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Winery</name>
+    <cmt>MPS:0231, PCX:-0001</cmt>
+    <desc>MPS:0231, PCX:-0001</desc>
+    <sym>Winery</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>-1.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>154.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Wrecker</name>
+    <cmt>MPS:0154, PCX:08253</cmt>
+    <desc>MPS:0154, PCX:08253</desc>
+    <sym>Wrecker</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8253.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Transportation</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+  <wpt lat="0.0000000" lon="0.0000000">
+    <ele>88.0000000</ele>
+    <time>2007-02-10T21:43:28Z</time>
+    <name>Zoo</name>
+    <cmt>MPS:0088, PCX:08219</cmt>
+    <desc>MPS:0088, PCX:08219</desc>
+    <sym>Zoo</sym>
+    <extensions>
+      <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensions/v3/GpxExtensionsv3.xsd">
+        <gpxx:Depth>8219.0000000</gpxx:Depth>
+        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
+        <gpxx:Categories>
+          <gpxx:Category>Business</gpxx:Category>
+        </gpxx:Categories>
+      </gpxx:WaypointExtension>
+    </extensions>
+  </wpt>
+
+</gpx>
index a3a814d56dcdc58f14960629dce815dee025fc04..b079d390f29d6dd76c1a00f5a89334047cefc4b8 100644 (file)
@@ -8,7 +8,7 @@
   <urlname>Geocaching - High Tech Treasure Hunting</urlname>\r
   <time>2005-07-16T18:15:40.7599561-07:00</time>\r
   <keywords>cache, geocache</keywords>\r
-  <bounds minlat="46.1333333333333" minlon="-73" maxlat="46.1333333333333" maxlon="-73" />\r
+  <bounds minlat="46.1333333333333" minlon="-73" maxlat="46.1333333333333" maxlon="-73"/>\r
   <wpt lat="46.1333333333333" lon="-73">\r
     <time>2002-08-15T00:00:00.0000000-07:00</time>\r
     <name>GC7FA4</name>\r
@@ -148,4 +148,4 @@ Enjoy !</groundspeak:text>
       <groundspeak:travelbugs />\r
     </groundspeak:cache>\r
   </wpt>\r
-</gpx>
\ No newline at end of file
+</gpx>
index 8d4be68d096c154c5a85127b12f426cd9482f72c..c815350f940701349b68f2ec95c09628abbac390 100644 (file)
@@ -8,7 +8,7 @@
   <urlname>Geocaching - High Tech Treasure Hunting</urlname>\r
   <time>2005-07-16T18:18:41.5712989-07:00</time>\r
   <keywords>cache, geocache</keywords>\r
-  <bounds minlat="35.9216666666667" minlon="-86.8616666666667" maxlat="35.9216666666667" maxlon="-86.8616666666667" />\r
+  <bounds minlat="35.9216666666667" minlon="-86.8616666666667" maxlat="35.9216666666667" maxlon="-86.8616666666667"/>\r
   <wpt lat="35.9216666666667" lon="-86.8616666666667">\r
     <time>2003-06-29T00:00:00.0000000-07:00</time>\r
     <name>GCGCA8</name>\r
@@ -100,4 +100,4 @@ Now that it's intuitively obvious to even the most casual observer where the cac
       <groundspeak:travelbugs />\r
     </groundspeak:cache>\r
   </wpt>\r
-</gpx>
\ No newline at end of file
+</gpx>
diff --git a/reference/gdb-sample-v3.gdb b/reference/gdb-sample-v3.gdb
new file mode 100644 (file)
index 0000000..929ad1e
Binary files /dev/null and b/reference/gdb-sample-v3.gdb differ
index 99e70b1fdacfab0cb564ebf6d53050a0341e9acf..f7f533cb1c47542cc9b7bb7701a643da2395ed89 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.492618987" minlon ="12.105448823" maxlat="51.315169176" maxlon="12.510077152" />
+<bounds minlat="50.492618987" minlon="12.105448823" maxlat="51.315169176" maxlon="12.510077152"/>
 <wpt lat="50.877340632" lon="12.433888670">
   <name>3</name>
   <cmt>B93</cmt>
index 67c7af66a9c00780ba12957752a00c03a4db0997..69914c9d0839b91abf17c07b931eb75f8aab790c 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>2005-08-30T20:58:28Z</time>
-<bounds minlat="50.500000000" minlon ="12.133333300" maxlat="51.133333300" maxlon="13.716666700" />
+<bounds minlat="50.500000000" minlon="12.133333300" maxlat="51.133333300" maxlon="13.716666700"/>
 <wpt lat="51.016666700" lon="13.716666700">
   <name>PLAUEN</name>
   <cmt>Plauen</cmt>
index 556a6e3ddf4af9c449c88848eb1f622dcc873600..74c50632989ab7e31226103c3b824fc1d9d522da 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="42.438878000" minlon ="-71.119689000" maxlat="42.439227000" maxlon="-71.116146000" />
+<bounds minlat="42.438878000" minlon="-71.119689000" maxlat="42.439227000" maxlon="-71.116146000"/>
 <wpt lat="42.438878000" lon="-71.119277000">
   <ele>44.000000</ele>
 <time>2001-11-28T22:05:00Z</time>
diff --git a/reference/gpsutil-1.pcx b/reference/gpsutil-1.pcx
new file mode 100644 (file)
index 0000000..26997a3
--- /dev/null
@@ -0,0 +1,23 @@
+H  SOFTWARE NAME & VERSION
+I  GPSU 4.20   01 REGISTERED to 'THIS FILE CREATED BY HAND FOR GPSBABEL TEST'
+S DateFormat=dd/mm/yyyy
+S Timezone=+01:00
+S Units=N,M
+S SymbolSet=0
+
+H R DATUM
+M E               WGS 84       100      0.0000000E+00   0.0000000E+00  0       0       0
+
+H  COORDINATE SYSTEM
+U  LAT LON DM
+
+F      ID----  Latitude        Longitude       T       O       Comment
+W      GCEBB   N35°58.3220'    W087°08.0820'   I       E       Mountain Bike Heaven by susy1313
+W      GC1A37  N36°05.4410'    W086°40.7730'   I       E       The Troll by a182pilot & Family
+W      GC1C2B  N35°59.7760'    W086°37.2070'   I       E       Dive Bomber by JoGPS & family
+W      GC25A9  N36°02.3090'    W086°38.9170'   I       E       FOSTER by JoGPS & Family
+W      GC2723  N36°06.7310'    W086°44.5060'   I       E       Logan Lighthouse by JoGps & Family
+W      GC2B71  N36°03.8450'    W086°47.4310'   I       E       Ganier Cache by Susy1313
+W      GC309F  N36°05.2660'    W086°48.5840'   I       E       Shy's Hill by FireFighterEng33
+W      GC317A  N36°03.4500'    W086°53.5200'   I       E       GittyUp by JoGPS / Warner Parks
+W      GC317D  N36°04.9680'    W086°52.0370'   I       E       Inlighting by JoGPS / Warner Parks
index 8548aef14229e6340fddba9135f83ab467b6d5c3..0eb3e6bbc7690b0d8b382f8cc307ca565c7bf63f 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="30.045517000" minlon ="-91.610567000" maxlat="42.468655000" maxlon="-71.102973000" />
+<bounds minlat="30.045517000" minlon="-91.610567000" maxlat="42.468655000" maxlon="-71.102973000"/>
 <wpt lat="42.438878000" lon="-71.119277000">
   <name>5066</name>
   <cmt>5066</cmt>
index 8dacba50df87f3f170bf2286a5831731b494beb0..cbb3c88d71130eaa840d0ea4a915381ddcf9d724 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>2005-01-18T18:58:35Z</time>
-<bounds minlat="-30.342870000" minlon ="149.746093000" maxlat="-27.755478000" maxlon="150.477059000" />
+<bounds minlat="-30.342870000" minlon="149.746093000" maxlat="-27.755478000" maxlon="150.477059000"/>
 <wpt lat="-29.480116000" lon="150.133619000">
   <name>PALLMG</name>
   <cmt>PALLMG</cmt>
index 43448b997e9e158bd9adc134df10637e03b9439f..35d55e160ac6e4a42712668993ba1e2e3f397971 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="-30.765600000" minlon ="150.602533333" maxlat="-30.675433333" maxlon="150.725983333" />
+<bounds minlat="-30.765600000" minlon="150.602533333" maxlat="-30.675433333" maxlon="150.725983333"/>
 <rte>
   <name>0001</name>
   <desc>IGCDATE000000: </desc>
index df34daebfe4b08ddaed63b509494d3db51da6b08..98dc11564db0e968d5fd6ddf387741ec1e9c0f05 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="51.118766667" minlon ="-2.920450000" maxlat="54.118683333" maxlon="-0.293533333" />
+<bounds minlat="51.118766667" minlon="-2.920450000" maxlat="54.118683333" maxlon="-0.293533333"/>
 <rte>
   <name>0001</name>
   <desc>IGCDATE160701: 500KTri</desc>
index 77be3af4cfe500cc2b1694c02c126527cb1e5071..a922f66ab6d88e44e2990bbc8f8862f5b3a700c0 100644 (file)
Binary files a/reference/magnav.pdb and b/reference/magnav.pdb differ
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/reference/raymarine-sample.gpx b/reference/raymarine-sample.gpx
new file mode 100644 (file)
index 0000000..cb130d3
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+ version="1.0"
+creator="GPSBabel - http://www.gpsbabel.org"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns="http://www.topografix.com/GPX/1/0"
+xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="48.623286047" minlon="9.895914981" maxlat="51.593568734" maxlon="12.598730495"/>
+<wpt lat="51.593568734" lon="9.895914981">
+<time>2006-11-06T21:07:41Z</time>
+  <name>Qr1-one</name>
+  <cmt>Qr1-one</cmt>
+  <desc>notes-1</desc>
+  <sym>Red Square</sym>
+</wpt>
+<wpt lat="50.833425048" lon="10.364770734">
+<time>2006-11-06T21:07:41Z</time>
+  <name>Qr,2</name>
+  <cmt>Qr,2</cmt>
+  <desc>notes-2</desc>
+  <sym>Big Fish</sym>
+</wpt>
+<wpt lat="50.184475274" lon="10.557828985">
+<time>2006-11-06T21:07:41Z</time>
+  <name>Qr3</name>
+  <cmt>Qr3</cmt>
+  <desc>notes-3</desc>
+  <sym>Anchor</sym>
+</wpt>
+<wpt lat="48.986577919" lon="12.047135492">
+<time>2006-11-06T21:07:41Z</time>
+  <name>Qr4-four</name>
+  <cmt>Qr4-four</cmt>
+  <desc>notes-4</desc>
+  <sym>Smiley</sym>
+</wpt>
+<wpt lat="48.623286047" lon="12.598730495">
+<time>2006-11-06T21:07:43Z</time>
+  <name>Qr5</name>
+  <cmt>Qr5</cmt>
+  <desc>notes-5</desc>
+  <sym>Sad</sym>
+</wpt>
+<rte>
+  <name>Qr</name>
+  <rtept lat="51.593568734" lon="9.895914981">
+<time>2006-11-06T21:07:41Z</time>
+    <name>Qr1-one</name>
+    <cmt>Qr1-one</cmt>
+    <desc>notes-1</desc>
+    <sym>Red Square</sym>
+  </rtept>
+  <rtept lat="50.833425048" lon="10.364770734">
+<time>2006-11-06T21:07:41Z</time>
+    <name>Qr,2</name>
+    <cmt>Qr,2</cmt>
+    <desc>notes-2</desc>
+    <sym>Big Fish</sym>
+  </rtept>
+  <rtept lat="50.184475274" lon="10.557828985">
+<time>2006-11-06T21:07:41Z</time>
+    <name>Qr3</name>
+    <cmt>Qr3</cmt>
+    <desc>notes-3</desc>
+    <sym>Anchor</sym>
+  </rtept>
+  <rtept lat="48.986577919" lon="12.047135492">
+<time>2006-11-06T21:07:41Z</time>
+    <name>Qr4-four</name>
+    <cmt>Qr4-four</cmt>
+    <desc>notes-4</desc>
+    <sym>Smiley</sym>
+  </rtept>
+  <rtept lat="48.623286047" lon="12.598730495">
+<time>2006-11-06T21:07:43Z</time>
+    <name>Qr5</name>
+    <cmt>Qr5</cmt>
+    <desc>notes-5</desc>
+    <sym>Sad</sym>
+  </rtept>
+</rte>
+</gpx>
diff --git a/reference/raymarine-sample.rwf b/reference/raymarine-sample.rwf
new file mode 100644 (file)
index 0000000..5657d28
--- /dev/null
@@ -0,0 +1,164 @@
+[Wp0]\r
+Loc=Qr\r
+Name=Qr1-one\r
+Lat=51.593568734471624\r
+Long=9.895914981396029\r
+Rng=0.000000000000000\r
+Bear=0.000000000000000\r
+Bmp=3\r
+Fixed=1\r
+Locked=0\r
+Notes=notes-1\r
+Rel=\r
+RelSet=1\r
+RcCount=1\r
+RcRadius=0.000000000000000\r
+Show=0\r
+RcShow=0\r
+SeaTemp=-32678.000000000000000\r
+Depth=65535.000000000000000\r
+Time=39027.880335648151000\r
+GUID=41847-17743-33206-33476\r
+[Wp1]\r
+Loc=Qr\r
+Name=Qr,2\r
+Lat=50.833425047658316\r
+Long=10.364770733812209\r
+Rng=0.000000000000000\r
+Bear=0.000000000000000\r
+Bmp=4\r
+Fixed=1\r
+Locked=0\r
+Notes=notes-2\r
+Rel=\r
+RelSet=1\r
+RcCount=1\r
+RcRadius=0.000000000000000\r
+Show=0\r
+RcShow=0\r
+SeaTemp=-32678.000000000000000\r
+Depth=65535.000000000000000\r
+Time=39027.880347222221000\r
+GUID=41847-17743-33462-33476\r
+[Wp2]\r
+Loc=Qr\r
+Name=Qr3\r
+Lat=50.184475273537196\r
+Long=10.557828984807108\r
+Rng=0.000000000000000\r
+Bear=0.000000000000000\r
+Bmp=5\r
+Fixed=1\r
+Locked=0\r
+Notes=notes-3\r
+Rel=\r
+RelSet=1\r
+RcCount=1\r
+RcRadius=0.000000000000000\r
+Show=0\r
+RcShow=0\r
+SeaTemp=-32678.000000000000000\r
+Depth=65535.000000000000000\r
+Time=39027.880347222221000\r
+GUID=41847-17743-33718-33476\r
+[Wp3]\r
+Loc=Qr\r
+Name=Qr4-four\r
+Lat=48.986577919201942\r
+Long=12.047135492482036\r
+Rng=0.000000000000000\r
+Bear=0.000000000000000\r
+Bmp=6\r
+Fixed=1\r
+Locked=0\r
+Notes=notes-4\r
+Rel=\r
+RelSet=1\r
+RcCount=1\r
+RcRadius=0.000000000000000\r
+Show=0\r
+RcShow=0\r
+SeaTemp=-32678.000000000000000\r
+Depth=65535.000000000000000\r
+Time=39027.880347222221000\r
+GUID=41847-17743-33974-33476\r
+[Wp4]\r
+Loc=Qr\r
+Name=Qr5\r
+Lat=48.623286046917791\r
+Long=12.598730495324602\r
+Rng=0.000000000000000\r
+Bear=0.000000000000000\r
+Bmp=7\r
+Fixed=1\r
+Locked=0\r
+Notes=notes-5\r
+Rel=\r
+RelSet=1\r
+RcCount=1\r
+RcRadius=0.000000000000000\r
+Show=0\r
+RcShow=0\r
+SeaTemp=-32678.000000000000000\r
+Depth=65535.000000000000000\r
+Time=39027.880358796298000\r
+GUID=41847-17743-34230-33476\r
+[Rt0]\r
+Name=Qr\r
+Visible=0\r
+Guid=41847-17743-32950-33476\r
+Mk0=Qr1-one\r
+Cog0=0.000000000000000\r
+Eta0=0.000000000000000\r
+Length0=0.000000000000000\r
+PredictedDrift0=0.000000000000000\r
+PredictedSet0=0.000000000000000\r
+PredictedSog0=0.000000000000000\r
+PredictedTime0=0.000000000000000\r
+PredictedTwa0=0.000000000000000\r
+PredictedTwd0=0.000000000000000\r
+PredictedTws0=0.000000000000000\r
+Mk1=Qr,2\r
+Cog1=0.000000000000000\r
+Eta1=0.000000000000000\r
+Length1=0.000000000000000\r
+PredictedDrift1=0.000000000000000\r
+PredictedSet1=0.000000000000000\r
+PredictedSog1=0.000000000000000\r
+PredictedTime1=0.000000000000000\r
+PredictedTwa1=0.000000000000000\r
+PredictedTwd1=0.000000000000000\r
+PredictedTws1=0.000000000000000\r
+Mk2=Qr3\r
+Cog2=0.000000000000000\r
+Eta2=0.000000000000000\r
+Length2=0.000000000000000\r
+PredictedDrift2=0.000000000000000\r
+PredictedSet2=0.000000000000000\r
+PredictedSog2=0.000000000000000\r
+PredictedTime2=0.000000000000000\r
+PredictedTwa2=0.000000000000000\r
+PredictedTwd2=0.000000000000000\r
+PredictedTws2=0.000000000000000\r
+Mk3=Qr4-four\r
+Cog3=0.000000000000000\r
+Eta3=0.000000000000000\r
+Length3=0.000000000000000\r
+PredictedDrift3=0.000000000000000\r
+PredictedSet3=0.000000000000000\r
+PredictedSog3=0.000000000000000\r
+PredictedTime3=0.000000000000000\r
+PredictedTwa3=0.000000000000000\r
+PredictedTwd3=0.000000000000000\r
+PredictedTws3=0.000000000000000\r
+Mk4=Qr5\r
+Cog4=0.000000000000000\r
+Eta4=0.000000000000000\r
+Length4=0.000000000000000\r
+PredictedDrift4=0.000000000000000\r
+PredictedSet4=0.000000000000000\r
+PredictedSog4=0.000000000000000\r
+PredictedTime4=0.000000000000000\r
+PredictedTwa4=0.000000000000000\r
+PredictedTwd4=0.000000000000000\r
+PredictedTws4=0.000000000000000\r
index 7f1983fa9bfb0ab80dad04537d3d6e9866133fcc..ea279c36edf6436af93cc7fd08c7c45bed53a6f6 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.492706401" minlon ="12.105471361" maxlat="51.314684001" maxlon="12.492485421" />
+<bounds minlat="50.492706401" minlon="12.105471361" maxlat="51.314684001" maxlon="12.492485421"/>
 <wpt lat="50.492706401" lon="12.105471361">
   <name>STATION1</name>
   <cmt>bei D 08527,Neundorf,,0,</cmt>
index ed1b3c79cac9ecd997b29624f5ce368d6464d6ce..bc41c8b940884854a7444daf88c08ad7380b18c3 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="45.754467000" minlon ="11.449617000" maxlat="45.789383000" maxlon="11.553583000" />
+<bounds minlat="45.754467000" minlon="11.449617000" maxlat="45.789383000" maxlon="11.553583000"/>
 <rte>
   <name>test</name>
   <rtept lat="45.789383000" lon="11.553583000">
index 82ca4ce636675366ddbc107c7a081b4c9c7b446c..4e0e415092a787a63b2dbe64867e10640e276f9e 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="47.543230000" minlon ="2.664750000" maxlat="47.565520000" maxlon="2.722340000" />
+<bounds minlat="47.543230000" minlon="2.664750000" maxlat="47.565520000" maxlon="2.722340000"/>
 <wpt lat="47.565210000" lon="2.713690000">
   <ele>1272.900000</ele>
 <time>2005-06-18T08:53:36Z</time>
index 8a23e61db446d14ed91169f1271a39ff73fc8a02..f2fef90104c9442ee295d1ec93892360257b3ab2 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="49.445861111" minlon ="11.044861111" maxlat="49.935944444" maxlon="11.481583333" />
+<bounds minlat="49.445861111" minlon="11.044861111" maxlat="49.935944444" maxlon="11.481583333"/>
 <wpt lat="49.718250000" lon="11.066416667">
   <name>Jägersburg in Forchheim geradeaus weiter auf Eisenbahnstrasse</name>
   <cmt>Jägersburg in Forchheim geradeaus weiter auf Eisenbahnstrasse</cmt>
index ccffa0d73f25a309e61ae50761673d9cc3edcf65..4498c4b28a1d9e701db370cad35f6cf2ff07078f 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.497369766" minlon ="12.135772705" maxlat="50.628690720" maxlon="12.998456955" />
+<bounds minlat="50.497369766" minlon="12.135772705" maxlat="50.628690720" maxlon="12.998456955"/>
 <rte>
   <rtept lat="50.497369766" lon="12.135772705">
     <name>Plauen</name>
index 0473d9546950790dd4092bbd386d35341ef0dff8..c9a826e2cfd27a7cdd13d6629c7222b0bd55880e 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="49.021900000" minlon ="11.587670000" maxlat="50.494250000" maxlon="12.675630000" />
+<bounds minlat="49.021900000" minlon="11.587670000" maxlat="50.494250000" maxlon="12.675630000"/>
 <rte>
   <rtept lat="50.494250000" lon="12.107270000">
     <name>RPT001</name>
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index 0d1ee22ce538be7280392100231f1d16d9e3c179..4b57000b91ba2a12f619b458f5ec6236f82e668b 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.492618900" minlon ="12.105448700" maxlat="51.314520700" maxlon="12.435919300" />
+<bounds minlat="50.492618900" minlon="12.105448700" maxlat="51.314520700" maxlon="12.435919300"/>
 <wpt lat="50.492618900" lon="12.105448700">
 <time>2005-09-03T00:00:00Z</time>
   <name>NARVA</name>
index 66a200c9c3e7337d68114d82832021b88f616f77..caea873f8a2ae4dac528de5f02da7958194c2a79 100644 (file)
@@ -1,10 +1,10 @@
 Datum,WGS 84,WGS 84,0,0,0,0,0\r
-WP,D,NARVA,50.4926189,12.1054487,09/03/2005,00:00:00.90,\r
-WP,D,Liebknechtstras,50.4938369,12.106101,09/03/2005,00:00:00.90,\r
-WP,D,Jahnstrasse11,50.4936628,12.1071524,09/03/2005,00:00:00.90,\r
-WP,D,Elsterberg,50.6107952,12.1738022,09/03/2005,00:00:00.90,\r
-WP,D,Greiz,50.654763,12.2049567,09/03/2005,00:00:00.90,\r
-WP,D,Gosel,50.8441256,12.4087572,09/03/2005,00:00:00.90,\r
-WP,D,3,50.8773405,12.4338887,09/03/2005,00:00:00.90,\r
-WP,D,Altenburg-Umgehung,50.9649551,12.4359193,09/03/2005,00:00:00.90,\r
-WP,D,Völkerschlachtdenkmal,51.3145207,12.4091433,09/03/2005,00:00:00.90,\r
+WP,D,NARVA,50.4926189,12.1054487,09/03/2005,00:00:00.00,\r
+WP,D,Liebknechtstras,50.4938369,12.106101,09/03/2005,00:00:00.00,\r
+WP,D,Jahnstrasse11,50.4936628,12.1071524,09/03/2005,00:00:00.00,\r
+WP,D,Elsterberg,50.6107952,12.1738022,09/03/2005,00:00:00.00,\r
+WP,D,Greiz,50.654763,12.2049567,09/03/2005,00:00:00.00,\r
+WP,D,Gosel,50.8441256,12.4087572,09/03/2005,00:00:00.00,\r
+WP,D,3,50.8773405,12.4338887,09/03/2005,00:00:00.00,\r
+WP,D,Altenburg-Umgehung,50.9649551,12.4359193,09/03/2005,00:00:00.00,\r
+WP,D,Völkerschlachtdenkmal,51.3145207,12.4091433,09/03/2005,00:00:00.00,\r
index f9e6870958ecb224683eb1f82f41e9366b34fee0..081c485268bc273de9653a1c071ea9575a0e0606 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.268830000" minlon ="11.640990000" maxlat="50.756540000" maxlon="12.696920000" />
+<bounds minlat="50.268830000" minlon="11.640990000" maxlat="50.756540000" maxlon="12.696920000"/>
 <wpt lat="50.362350000" lon="11.903730000">
   <name>in Zedtwitz halb rechts halten auf B2 Hofer Strasse</name>
   <cmt>B2 Hofer Strasse</cmt>
diff --git a/reference/sample.gtm.gz b/reference/sample.gtm.gz
new file mode 100644 (file)
index 0000000..cc3b404
Binary files /dev/null and b/reference/sample.gtm.gz differ
index 1d38e89b8eacd928993e20e3019dabf8e53fcd95..d98c003d5fa40f078767a910b56af31e2830d0d0 100644 (file)
@@ -5,7 +5,7 @@ creator="GPSBabel - http://www.gpsbabel.org"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
-<bounds minlat="39.047567844" minlon ="-119.913288116" maxlat="39.068486691" maxlon="-119.875101328" />
+<bounds minlat="39.047567844" minlon="-119.913288116" maxlat="39.068486691" maxlon="-119.875101328"/>
 <wpt lat="39.050695896" lon="-119.911156178">
   <ele>2428.000000</ele>
   <name>001</name>
index d07d8936ccef51df5779c7d9bf675eab06cb1e78..eedcd7dc1970c2c2e60f86057829a982f35e94b6 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.877340632" minlon ="12.433738670" maxlat="50.877348965" maxlon="12.433888670" />
+<bounds minlat="50.877340632" minlon="12.433738670" maxlat="50.877348965" maxlon="12.433888670"/>
 <trk>
 <trkseg>
 <trkpt lat="50.877340632" lon="12.433888670">
index 06456e1d7745e0d57a93818af7ec1dbf7c6da5eb..6a64c4d862aaed7ff57f7afe77b86592cf63ee97 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="51.312750000" minlon ="12.409350000" maxlat="51.314650000" maxlon="12.414983333" />
+<bounds minlat="51.312750000" minlon="12.409350000" maxlat="51.314650000" maxlon="12.414983333"/>
 <trk>
   <name>ACTIVE LOG 006</name>
 <trkseg>
index fc52a5c6f838d8f6be9b20f2955972947d6e3a3f..7bec3fc69d672cf800e78c9ad79a1153c01eccb4 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="30.045517000" minlon ="-91.610567000" maxlat="42.468655000" maxlon="-71.102973000" />
+<bounds minlat="30.045517000" minlon="-91.610567000" maxlat="42.468655000" maxlon="-71.102973000"/>
 <wpt lat="42.438878000" lon="-71.119277000">
   <ele>44.586548</ele>
   <name>5066</name>
@@ -350,6 +350,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <desc>Crossing</desc>
 </wpt>
 <wpt lat="42.458516000" lon="-71.103646000">
+  <ele>0.000000</ele>
   <name>DARKHOLLPO</name>
   <cmt>Dark Hollow Pond</cmt>
   <desc>Dark Hollow Pond</desc>
@@ -528,48 +529,67 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <ele>1.000000</ele>
 </trkpt>
 <trkpt lat="30.062783000" lon="-91.610567000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.062700000" lon="-91.608267000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.062333000" lon="-91.607383000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.061533000" lon="-91.605283000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.059783000" lon="-91.599400000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.057800000" lon="-91.596683000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.055383000" lon="-91.594900000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.053883000" lon="-91.592617000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.049733000" lon="-91.589750000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.049017000" lon="-91.589883000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.048800000" lon="-91.592933000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046233000" lon="-91.596450000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.045517000" lon="-91.598717000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.047300000" lon="-91.600267000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.047000000" lon="-91.599633000">
   <ele>2.000000</ele>
 </trkpt>
 <trkpt lat="30.046433000" lon="-91.599467000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046200000" lon="-91.598950000">
   <ele>1.000000</ele>
 </trkpt>
 <trkpt lat="30.046367000" lon="-91.597733000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046350000" lon="-91.597167000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046783000" lon="-91.596333000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.047450000" lon="-91.595200000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.047800000" lon="-91.594767000">
   <ele>2.000000</ele>
@@ -581,19 +601,25 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <ele>1.000000</ele>
 </trkpt>
 <trkpt lat="30.049350000" lon="-91.593850000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.050317000" lon="-91.593983000">
   <ele>2.000000</ele>
 </trkpt>
 <trkpt lat="30.050783000" lon="-91.594117000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.051233000" lon="-91.594367000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.051800000" lon="-91.594367000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052217000" lon="-91.594667000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.053017000" lon="-91.594683000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.054867000" lon="-91.595200000">
   <ele>6.000000</ele>
@@ -602,67 +628,94 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <ele>2.000000</ele>
 </trkpt>
 <trkpt lat="30.053183000" lon="-91.594783000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052633000" lon="-91.594833000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052450000" lon="-91.595433000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052483000" lon="-91.595967000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052650000" lon="-91.596783000">
   <ele>1.000000</ele>
 </trkpt>
 <trkpt lat="30.053133000" lon="-91.597850000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.053617000" lon="-91.597967000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.053967000" lon="-91.597767000">
   <ele>6.000000</ele>
 </trkpt>
 <trkpt lat="30.053617000" lon="-91.598083000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.053200000" lon="-91.597917000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052817000" lon="-91.597517000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052567000" lon="-91.596933000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052333000" lon="-91.596433000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052250000" lon="-91.595683000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.052217000" lon="-91.595017000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.051883000" lon="-91.594700000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.051050000" lon="-91.594400000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.050567000" lon="-91.594233000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.050183000" lon="-91.594100000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.049100000" lon="-91.593717000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.048450000" lon="-91.594250000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.048083000" lon="-91.594750000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.047500000" lon="-91.595450000">
   <ele>7.000000</ele>
 </trkpt>
 <trkpt lat="30.047067000" lon="-91.596000000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046633000" lon="-91.596600000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046400000" lon="-91.597650000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046233000" lon="-91.598467000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046317000" lon="-91.598967000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.046783000" lon="-91.599283000">
+  <ele>0.000000</ele>
 </trkpt>
 <trkpt lat="30.047133000" lon="-91.599667000">
+  <ele>0.000000</ele>
 </trkpt>
 </trkseg>
 </trk>
old mode 100644 (file)
new mode 100755 (executable)
index 298cdda3a3e7328979f1d81ebe07c011910e4396..df34d2e86dbb793f9c282ad6a76c11e6a04a2c74 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="45.660805000" minlon ="6.365717000" maxlat="45.667271000" maxlon="6.372394000" />
+<bounds minlat="45.660805000" minlon="6.365717000" maxlat="45.667271000" maxlon="6.372394000"/>
 <trk>
   <desc>20050719 Mar Tamié ind 2 VTT Sem Europ</desc>
 <trkseg>
index 9fe10f4de6019fbb5d03c5857c1835736082e015..3769932dc8ef94a16fbbbba6246344be0657b33c 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="36.000000000" minlon ="-115.000000000" maxlat="41.000000000" maxlon="-85.000000000" />
+<bounds minlat="36.000000000" minlon="-115.000000000" maxlat="41.000000000" maxlon="-85.000000000"/>
 <trk>
 <trkseg>
 <trkpt lat="41.000000000" lon="-85.000000000">
diff --git a/reference/track/kompass.tk b/reference/track/kompass.tk
new file mode 100644 (file)
index 0000000..747062d
--- /dev/null
@@ -0,0 +1,64 @@
+30.0621830,-91.6103500
+30.0627830,-91.6105670
+30.0627000,-91.6082670
+30.0623330,-91.6073830
+30.0615330,-91.6052830
+30.0597830,-91.5994000
+30.0578000,-91.5966830
+30.0553830,-91.5949000
+30.0538830,-91.5926170
+30.0497330,-91.5897500
+30.0490170,-91.5898830
+30.0488000,-91.5929330
+30.0462330,-91.5964500
+30.0455170,-91.5987170
+30.0473000,-91.6002670
+30.0470000,-91.5996330
+30.0464330,-91.5994670
+30.0462000,-91.5989500
+30.0463670,-91.5977330
+30.0463500,-91.5971670
+30.0467830,-91.5963330
+30.0474500,-91.5952000
+30.0478000,-91.5947670
+30.0482500,-91.5940830
+30.0486830,-91.5938000
+30.0493500,-91.5938500
+30.0503170,-91.5939830
+30.0507830,-91.5941170
+30.0512330,-91.5943670
+30.0518000,-91.5943670
+30.0522170,-91.5946670
+30.0530170,-91.5946830
+30.0548670,-91.5952000
+30.0537330,-91.5949330
+30.0531830,-91.5947830
+30.0526330,-91.5948330
+30.0524500,-91.5954330
+30.0524830,-91.5959670
+30.0526500,-91.5967830
+30.0531330,-91.5978500
+30.0536170,-91.5979670
+30.0539670,-91.5977670
+30.0536170,-91.5980830
+30.0532000,-91.5979170
+30.0528170,-91.5975170
+30.0525670,-91.5969330
+30.0523330,-91.5964330
+30.0522500,-91.5956830
+30.0522170,-91.5950170
+30.0518830,-91.5947000
+30.0510500,-91.5944000
+30.0505670,-91.5942330
+30.0501830,-91.5941000
+30.0491000,-91.5937170
+30.0484500,-91.5942500
+30.0480830,-91.5947500
+30.0475000,-91.5954500
+30.0470670,-91.5960000
+30.0466330,-91.5966000
+30.0464000,-91.5976500
+30.0462330,-91.5984670
+30.0463170,-91.5989670
+30.0467830,-91.5992830
+30.0471330,-91.5996670
index dc02404fef5a9e1657839344f5ef8eaee8dfa8f9..2218a303b218974d7300d77db51b3fc2229f310b 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="42.530485000" minlon ="-88.121766667" maxlat="42.530528333" maxlon="-88.121706667" />
+<bounds minlat="42.530485000" minlon="-88.121766667" maxlat="42.530528333" maxlon="-88.121706667"/>
 <trk>
 <trkseg>
 <trkpt lat="42.530485000" lon="-88.121721667">
index 8fac5b3690b660c833168f1f891d0ec48669cbf4..cd69d359f454b3f40498bb109539ac75cc3c458a 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="50.319399833" minlon ="11.700503833" maxlat="50.496254000" maxlon="12.138562167" />
+<bounds minlat="50.319399833" minlon="11.700503833" maxlat="50.496254000" maxlon="12.138562167"/>
 <trk>
   <name>20050116_Fahrradtour Gerd</name>
 <trkseg>
old mode 100644 (file)
new mode 100755 (executable)
index f6204f68f28f21e898c5213f54ab2cee661bffb4..ae1454d382b45c57eefdb55ea259cec1e6c58070 100644 (file)
@@ -6,167 +6,167 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="45.177499900" minlon ="4.634587200" maxlat="45.187113000" maxlon="4.660729700" />
+<bounds minlat="45.177499900" minlon="4.634587200" maxlat="45.187113000" maxlon="4.660729700"/>
 <trk>
 <trkseg>
 <trkpt lat="45.187113000" lon="4.660729700">
-<time>2005-08-23T15:25:12Z</time>
+<time>2005-08-23T15:25:12.812Z</time>
 </trkpt>
 <trkpt lat="45.186845500" lon="4.660163000">
-<time>2005-08-23T15:25:22Z</time>
+<time>2005-08-23T15:25:22.822Z</time>
 </trkpt>
 <trkpt lat="45.186395500" lon="4.659932400">
-<time>2005-08-23T15:25:39Z</time>
+<time>2005-08-23T15:25:39.839Z</time>
 </trkpt>
 <trkpt lat="45.185924600" lon="4.659882600">
-<time>2005-08-23T15:25:58Z</time>
+<time>2005-08-23T15:25:58.858Z</time>
 </trkpt>
 <trkpt lat="45.185478000" lon="4.659767600">
-<time>2005-08-23T15:26:16Z</time>
+<time>2005-08-23T15:26:16.816Z</time>
 </trkpt>
 <trkpt lat="45.185017800" lon="4.659738800">
-<time>2005-08-23T15:26:33Z</time>
+<time>2005-08-23T15:26:33.833Z</time>
 </trkpt>
 <trkpt lat="45.184579700" lon="4.659604400">
-<time>2005-08-23T15:26:53Z</time>
+<time>2005-08-23T15:26:53.853Z</time>
 </trkpt>
 <trkpt lat="45.184125400" lon="4.659626700">
-<time>2005-08-23T15:27:09Z</time>
+<time>2005-08-23T15:27:09.089Z</time>
 </trkpt>
 <trkpt lat="45.183667200" lon="4.659552100">
-<time>2005-08-23T15:27:28Z</time>
+<time>2005-08-23T15:27:28.828Z</time>
 </trkpt>
 <trkpt lat="45.183681400" lon="4.658898400">
-<time>2005-08-23T15:28:02Z</time>
+<time>2005-08-23T15:28:02.082Z</time>
 </trkpt>
 <trkpt lat="45.183994000" lon="4.658401600">
-<time>2005-08-23T15:28:15Z</time>
+<time>2005-08-23T15:28:15.815Z</time>
 </trkpt>
 <trkpt lat="45.184607600" lon="4.657295000">
-<time>2005-08-23T15:28:30Z</time>
+<time>2005-08-23T15:28:30.830Z</time>
 </trkpt>
 <trkpt lat="45.185006500" lon="4.655877600">
-<time>2005-08-23T15:28:44Z</time>
+<time>2005-08-23T15:28:44.844Z</time>
 </trkpt>
 <trkpt lat="45.184509400" lon="4.655268100">
-<time>2005-08-23T15:28:54Z</time>
+<time>2005-08-23T15:28:54.854Z</time>
 </trkpt>
 <trkpt lat="45.183927600" lon="4.654676700">
-<time>2005-08-23T15:29:04Z</time>
+<time>2005-08-23T15:29:04.084Z</time>
 </trkpt>
 <trkpt lat="45.183491900" lon="4.654383400">
-<time>2005-08-23T15:29:16Z</time>
+<time>2005-08-23T15:29:16.816Z</time>
 </trkpt>
 <trkpt lat="45.183500700" lon="4.653741400">
-<time>2005-08-23T15:29:26Z</time>
+<time>2005-08-23T15:29:26.826Z</time>
 </trkpt>
 <trkpt lat="45.183334800" lon="4.653151500">
-<time>2005-08-23T15:29:42Z</time>
+<time>2005-08-23T15:29:42.842Z</time>
 </trkpt>
 <trkpt lat="45.183066200" lon="4.652625200">
-<time>2005-08-23T15:29:59Z</time>
+<time>2005-08-23T15:29:59.859Z</time>
 </trkpt>
 <trkpt lat="45.183001700" lon="4.651983900">
-<time>2005-08-23T15:30:15Z</time>
+<time>2005-08-23T15:30:15.815Z</time>
 </trkpt>
 <trkpt lat="45.182989700" lon="4.651326900">
-<time>2005-08-23T15:30:32Z</time>
+<time>2005-08-23T15:30:32.832Z</time>
 </trkpt>
 <trkpt lat="45.182910100" lon="4.650682800">
-<time>2005-08-23T15:30:44Z</time>
+<time>2005-08-23T15:30:44.844Z</time>
 </trkpt>
 <trkpt lat="45.182539100" lon="4.650288200">
-<time>2005-08-23T15:30:56Z</time>
+<time>2005-08-23T15:30:56.856Z</time>
 </trkpt>
 <trkpt lat="45.182125900" lon="4.649993200">
-<time>2005-08-23T15:31:14Z</time>
+<time>2005-08-23T15:31:14.814Z</time>
 </trkpt>
 <trkpt lat="45.181794300" lon="4.649571300">
-<time>2005-08-23T15:31:31Z</time>
+<time>2005-08-23T15:31:31.831Z</time>
 </trkpt>
 <trkpt lat="45.181625100" lon="4.648974300">
-<time>2005-08-23T15:31:50Z</time>
+<time>2005-08-23T15:31:50.850Z</time>
 </trkpt>
 <trkpt lat="45.181511800" lon="4.648349300">
-<time>2005-08-23T15:32:13Z</time>
+<time>2005-08-23T15:32:13.813Z</time>
 </trkpt>
 <trkpt lat="45.181295700" lon="4.647775000">
-<time>2005-08-23T15:32:34Z</time>
+<time>2005-08-23T15:32:34.834Z</time>
 </trkpt>
 <trkpt lat="45.181057000" lon="4.647201200">
-<time>2005-08-23T15:32:56Z</time>
+<time>2005-08-23T15:32:56.856Z</time>
 </trkpt>
 <trkpt lat="45.180720100" lon="4.646757600">
-<time>2005-08-23T15:33:15Z</time>
+<time>2005-08-23T15:33:15.815Z</time>
 </trkpt>
 <trkpt lat="45.180433600" lon="4.646221300">
-<time>2005-08-23T15:33:32Z</time>
+<time>2005-08-23T15:33:32.832Z</time>
 </trkpt>
 <trkpt lat="45.180078000" lon="4.645822800">
-<time>2005-08-23T15:33:51Z</time>
+<time>2005-08-23T15:33:51.851Z</time>
 </trkpt>
 <trkpt lat="45.179698200" lon="4.645442700">
-<time>2005-08-23T15:34:09Z</time>
+<time>2005-08-23T15:34:09.089Z</time>
 </trkpt>
 <trkpt lat="45.179354500" lon="4.645033100">
-<time>2005-08-23T15:34:29Z</time>
+<time>2005-08-23T15:34:29.829Z</time>
 </trkpt>
 <trkpt lat="45.178831700" lon="4.644899000">
-<time>2005-08-23T15:34:50Z</time>
+<time>2005-08-23T15:34:50.850Z</time>
 </trkpt>
 <trkpt lat="45.178873700" lon="4.644249900">
-<time>2005-08-23T15:35:15Z</time>
+<time>2005-08-23T15:35:15.815Z</time>
 </trkpt>
 <trkpt lat="45.179131500" lon="4.643725300">
-<time>2005-08-23T15:35:33Z</time>
+<time>2005-08-23T15:35:33.833Z</time>
 </trkpt>
 <trkpt lat="45.179240000" lon="4.643110200">
-<time>2005-08-23T15:35:55Z</time>
+<time>2005-08-23T15:35:55.855Z</time>
 </trkpt>
 <trkpt lat="45.179606000" lon="4.642736400">
-<time>2005-08-23T15:36:16Z</time>
+<time>2005-08-23T15:36:16.816Z</time>
 </trkpt>
 <trkpt lat="45.179759300" lon="4.642141200">
-<time>2005-08-23T15:36:39Z</time>
+<time>2005-08-23T15:36:39.839Z</time>
 </trkpt>
 <trkpt lat="45.179895100" lon="4.641526300">
-<time>2005-08-23T15:37:03Z</time>
+<time>2005-08-23T15:37:03.083Z</time>
 </trkpt>
 <trkpt lat="45.179936600" lon="4.640884200">
-<time>2005-08-23T15:37:33Z</time>
+<time>2005-08-23T15:37:33.833Z</time>
 </trkpt>
 <trkpt lat="45.179692900" lon="4.640355500">
-<time>2005-08-23T15:38:06Z</time>
+<time>2005-08-23T15:38:06.086Z</time>
 </trkpt>
 <trkpt lat="45.179717200" lon="4.639714300">
-<time>2005-08-23T15:38:36Z</time>
+<time>2005-08-23T15:38:36.836Z</time>
 </trkpt>
 <trkpt lat="45.179532100" lon="4.639125700">
-<time>2005-08-23T15:39:06Z</time>
+<time>2005-08-23T15:39:06.086Z</time>
 </trkpt>
 <trkpt lat="45.179173000" lon="4.638733200">
-<time>2005-08-23T15:39:29Z</time>
+<time>2005-08-23T15:39:29.829Z</time>
 </trkpt>
 <trkpt lat="45.179017500" lon="4.638135800">
-<time>2005-08-23T15:39:51Z</time>
+<time>2005-08-23T15:39:51.851Z</time>
 </trkpt>
 <trkpt lat="45.178894700" lon="4.637525200">
-<time>2005-08-23T15:40:14Z</time>
+<time>2005-08-23T15:40:14.814Z</time>
 </trkpt>
 <trkpt lat="45.178674600" lon="4.636948900">
-<time>2005-08-23T15:40:34Z</time>
+<time>2005-08-23T15:40:34.834Z</time>
 </trkpt>
 <trkpt lat="45.178391800" lon="4.636434900">
-<time>2005-08-23T15:40:47Z</time>
+<time>2005-08-23T15:40:47.847Z</time>
 </trkpt>
 <trkpt lat="45.178171700" lon="4.635866200">
-<time>2005-08-23T15:40:59Z</time>
+<time>2005-08-23T15:40:59.859Z</time>
 </trkpt>
 <trkpt lat="45.177866400" lon="4.635158500">
-<time>2005-08-23T15:41:09Z</time>
+<time>2005-08-23T15:41:09.089Z</time>
 </trkpt>
 <trkpt lat="45.177499900" lon="4.634587200">
-<time>2005-08-23T15:41:19Z</time>
+<time>2005-08-23T15:41:19.819Z</time>
 </trkpt>
 </trkseg>
 </trk>
index 3a04e3a2ffc9e428d6eb0eb42e4e9c26ce993421..397ec8a7a8d1c341814dfa40439c7fa9cbe50b20 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="36.000000000" minlon ="-115.000000000" maxlat="41.000000000" maxlon="-85.000000000" />
+<bounds minlat="36.000000000" minlon="-115.000000000" maxlat="41.000000000" maxlon="-85.000000000"/>
 <trk>
 <trkseg>
 <trkpt lat="41.000000000" lon="-85.000000000">
index 1fa2656658d918add323a4f1e316ec9cce554f41..37e455ed7c689c61cb3377d1c459fb2d51b72456 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="33.753026015" minlon ="-122.443458941" maxlat="41.447125389" maxlon="-116.669656846" />
+<bounds minlat="33.753026015" minlon="-122.443458941" maxlat="41.447125389" maxlon="-116.669656846"/>
 <trk>
   <name>Track 1</name>
 <trkseg>
index 0e963349e89fe82c52a337bf227bfbaa95667618..abf54560c2f9ccdbc76a4a738f3e87e8e5c60078 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="30.045517000" minlon ="-91.610567000" maxlat="30.062783000" maxlon="-91.589750000" />
+<bounds minlat="30.045517000" minlon="-91.610567000" maxlat="30.062783000" maxlon="-91.589750000"/>
 <trk>
   <name>LOG-20020525-20020525</name>
 <trkseg>
index e22b660863a13b5482a8c85ad028b7de9057519f..2ca22488bc017919526bdd44ae305a9a9f5038ec 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="30.045517000" minlon ="-91.610567000" maxlat="30.062783000" maxlon="-91.589750000" />
+<bounds minlat="30.045517000" minlon="-91.610567000" maxlat="30.062783000" maxlon="-91.589750000"/>
 <trk>
   <name>20020525</name>
 <trkseg>
index 567b34cc689693943c67761886135354639f1378..9ebd3ae68b667d40e0157362a001b6b7cae6fba4 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="30.045517000" minlon ="-91.610567000" maxlat="30.062783000" maxlon="-91.589750000" />
+<bounds minlat="30.045517000" minlon="-91.610567000" maxlat="30.062783000" maxlon="-91.589750000"/>
 <trk>
   <name>LOG-20020525</name>
 <trkseg>
index 55dd187713dfa27417581ef1015ec1c8b9e9fc45..1b510a9c0b4c710e199a7bf9d4a377ec9a972236 100644 (file)
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <gpx
  version="1.0"
-creator="GPSBabel - http://gpsbabel.sourceforge.net"
+creator="GPSBabel - http://www.gpsbabel.org"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
-<time>2004-01-08T20:11:32Z</time>
+<time>2007-02-14T15:24:42Z</time>
+<bounds minlat="30.045516667" minlon="-91.610566667" maxlat="30.062783333" maxlon="-91.589750000"/>
 <trk>
-<name>meridian</name>
+  <name>meridian</name>
 <trkseg>
 <trkpt lat="30.062183333" lon="-91.610350000">
-<ele>1.000000</ele>
-<time>2002-05-25T17:06:21Z</time>
+  <ele>1.000000</ele>
+<time>2002-05-25T17:06:21.250Z</time>
 </trkpt>
 <trkpt lat="30.062783333" lon="-91.610566667">
-<ele>0.000000</ele>
-<time>2002-05-25T17:09:55Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:09:55.190Z</time>
 </trkpt>
 <trkpt lat="30.062700000" lon="-91.608266667">
-<ele>0.000000</ele>
-<time>2002-05-25T17:12:00Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:12:00.200Z</time>
 </trkpt>
 <trkpt lat="30.062333333" lon="-91.607383333">
-<ele>0.000000</ele>
-<time>2002-05-25T17:12:48Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:12:48.750Z</time>
 </trkpt>
 <trkpt lat="30.061533333" lon="-91.605283333">
-<ele>0.000000</ele>
-<time>2002-05-25T17:14:41Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:14:41.200Z</time>
 </trkpt>
 <trkpt lat="30.059783333" lon="-91.599400000">
-<ele>0.000000</ele>
-<time>2002-05-25T17:17:16Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:17:16.200Z</time>
 </trkpt>
 <trkpt lat="30.057800000" lon="-91.596683333">
-<ele>0.000000</ele>
-<time>2002-05-25T17:17:46Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:17:46.200Z</time>
 </trkpt>
 <trkpt lat="30.055383333" lon="-91.594900000">
-<ele>0.000000</ele>
-<time>2002-05-25T17:18:20Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:18:20.810Z</time>
 </trkpt>
 <trkpt lat="30.053883333" lon="-91.592616667">
-<ele>0.000000</ele>
-<time>2002-05-25T17:19:01Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:19:01.200Z</time>
 </trkpt>
 <trkpt lat="30.049733333" lon="-91.589750000">
-<ele>0.000000</ele>
-<time>2002-05-25T17:20:46Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:20:46.250Z</time>
 </trkpt>
 <trkpt lat="30.049016667" lon="-91.589883333">
-<ele>0.000000</ele>
-<time>2002-05-25T17:21:10Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:21:10.250Z</time>
 </trkpt>
 <trkpt lat="30.048800000" lon="-91.592933333">
-<ele>0.000000</ele>
-<time>2002-05-25T17:21:51Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:21:51.370Z</time>
 </trkpt>
 <trkpt lat="30.046233333" lon="-91.596450000">
-<ele>0.000000</ele>
-<time>2002-05-25T17:22:35Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:22:35.200Z</time>
 </trkpt>
 <trkpt lat="30.045516667" lon="-91.598716667">
-<ele>0.000000</ele>
-<time>2002-05-25T17:23:08Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T17:23:08.560Z</time>
 </trkpt>
 <trkpt lat="30.047300000" lon="-91.600266667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:04:23Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:04:23.930Z</time>
 </trkpt>
 <trkpt lat="30.047000000" lon="-91.599633333">
-<ele>2.000000</ele>
-<time>2002-05-25T18:06:04Z</time>
+  <ele>2.000000</ele>
+<time>2002-05-25T18:06:04.920Z</time>
 </trkpt>
 <trkpt lat="30.046433333" lon="-91.599466667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:07:06Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:07:06.920Z</time>
 </trkpt>
 <trkpt lat="30.046200000" lon="-91.598950000">
-<ele>1.000000</ele>
-<time>2002-05-25T18:08:18Z</time>
+  <ele>1.000000</ele>
+<time>2002-05-25T18:08:18.920Z</time>
 </trkpt>
 <trkpt lat="30.046366667" lon="-91.597733333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:10:20Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:10:20.920Z</time>
 </trkpt>
 <trkpt lat="30.046350000" lon="-91.597166667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:11:09Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:11:09.930Z</time>
 </trkpt>
 <trkpt lat="30.046783333" lon="-91.596333333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:12:18Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:12:18.920Z</time>
 </trkpt>
 <trkpt lat="30.047450000" lon="-91.595200000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:14:22Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:14:22.930Z</time>
 </trkpt>
 <trkpt lat="30.047800000" lon="-91.594766667">
-<ele>2.000000</ele>
-<time>2002-05-25T18:15:04Z</time>
+  <ele>2.000000</ele>
+<time>2002-05-25T18:15:04.930Z</time>
 </trkpt>
 <trkpt lat="30.048250000" lon="-91.594083333">
-<ele>1.000000</ele>
-<time>2002-05-25T18:16:14Z</time>
+  <ele>1.000000</ele>
+<time>2002-05-25T18:16:14.930Z</time>
 </trkpt>
 <trkpt lat="30.048683333" lon="-91.593800000">
-<ele>1.000000</ele>
-<time>2002-05-25T18:17:01Z</time>
+  <ele>1.000000</ele>
+<time>2002-05-25T18:17:01.930Z</time>
 </trkpt>
 <trkpt lat="30.049350000" lon="-91.593850000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:18:07Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:18:07.940Z</time>
 </trkpt>
 <trkpt lat="30.050316667" lon="-91.593983333">
-<ele>2.000000</ele>
-<time>2002-05-25T18:19:51Z</time>
+  <ele>2.000000</ele>
+<time>2002-05-25T18:19:51.940Z</time>
 </trkpt>
 <trkpt lat="30.050783333" lon="-91.594116667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:20:39Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:20:39.940Z</time>
 </trkpt>
 <trkpt lat="30.051233333" lon="-91.594366667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:21:24Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:21:24.930Z</time>
 </trkpt>
 <trkpt lat="30.051800000" lon="-91.594366667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:22:17Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:22:17.940Z</time>
 </trkpt>
 <trkpt lat="30.052216667" lon="-91.594666667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:23:18Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:23:18.930Z</time>
 </trkpt>
 <trkpt lat="30.053016667" lon="-91.594683333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:24:37Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:24:37.940Z</time>
 </trkpt>
 <trkpt lat="30.054866667" lon="-91.595200000">
-<ele>6.000000</ele>
-<time>2002-05-25T18:28:13Z</time>
+  <ele>6.000000</ele>
+<time>2002-05-25T18:28:13.950Z</time>
 </trkpt>
 <trkpt lat="30.053733333" lon="-91.594933333">
-<ele>2.000000</ele>
-<time>2002-05-25T18:31:36Z</time>
+  <ele>2.000000</ele>
+<time>2002-05-25T18:31:36.940Z</time>
 </trkpt>
 <trkpt lat="30.053183333" lon="-91.594783333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:32:56Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:32:56.950Z</time>
 </trkpt>
 <trkpt lat="30.052633333" lon="-91.594833333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:34:02Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:34:02.950Z</time>
 </trkpt>
 <trkpt lat="30.052450000" lon="-91.595433333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:36:03Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:36:03.950Z</time>
 </trkpt>
 <trkpt lat="30.052483333" lon="-91.595966667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:36:48Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:36:48.960Z</time>
 </trkpt>
 <trkpt lat="30.052650000" lon="-91.596783333">
-<ele>1.000000</ele>
-<time>2002-05-25T18:37:52Z</time>
+  <ele>1.000000</ele>
+<time>2002-05-25T18:37:52.960Z</time>
 </trkpt>
 <trkpt lat="30.053133333" lon="-91.597850000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:39:18Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:39:18.950Z</time>
 </trkpt>
 <trkpt lat="30.053616667" lon="-91.597966667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:40:15Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:40:15.960Z</time>
 </trkpt>
 <trkpt lat="30.053966667" lon="-91.597766667">
-<ele>6.000000</ele>
-<time>2002-05-25T18:41:25Z</time>
+  <ele>6.000000</ele>
+<time>2002-05-25T18:41:25.960Z</time>
 </trkpt>
 <trkpt lat="30.053616667" lon="-91.598083333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:42:37Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:42:37.960Z</time>
 </trkpt>
 <trkpt lat="30.053200000" lon="-91.597916667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:44:01Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:44:01.960Z</time>
 </trkpt>
 <trkpt lat="30.052816667" lon="-91.597516667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:45:53Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:45:53.960Z</time>
 </trkpt>
 <trkpt lat="30.052566667" lon="-91.596933333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:46:54Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:46:54.960Z</time>
 </trkpt>
 <trkpt lat="30.052333333" lon="-91.596433333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:47:42Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:47:42.970Z</time>
 </trkpt>
 <trkpt lat="30.052250000" lon="-91.595683333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:48:41Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:48:41.960Z</time>
 </trkpt>
 <trkpt lat="30.052216667" lon="-91.595016667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:49:52Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:49:52.970Z</time>
 </trkpt>
 <trkpt lat="30.051883333" lon="-91.594700000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:50:49Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:50:49.970Z</time>
 </trkpt>
 <trkpt lat="30.051050000" lon="-91.594400000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:52:14Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:52:14.970Z</time>
 </trkpt>
 <trkpt lat="30.050566667" lon="-91.594233333">
-<ele>0.000000</ele>
-<time>2002-05-25T18:52:56Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:52:56.980Z</time>
 </trkpt>
 <trkpt lat="30.050183333" lon="-91.594100000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:53:38Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:53:38.980Z</time>
 </trkpt>
 <trkpt lat="30.049100000" lon="-91.593716667">
-<ele>0.000000</ele>
-<time>2002-05-25T18:55:11Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:55:11.970Z</time>
 </trkpt>
 <trkpt lat="30.048450000" lon="-91.594250000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:56:32Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:56:32.980Z</time>
 </trkpt>
 <trkpt lat="30.048083333" lon="-91.594750000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:57:24Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:57:24.970Z</time>
 </trkpt>
 <trkpt lat="30.047500000" lon="-91.595450000">
-<ele>7.000000</ele>
-<time>2002-05-25T18:58:40Z</time>
+  <ele>7.000000</ele>
+<time>2002-05-25T18:58:40.980Z</time>
 </trkpt>
 <trkpt lat="30.047066667" lon="-91.596000000">
-<ele>0.000000</ele>
-<time>2002-05-25T18:59:28Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T18:59:28.980Z</time>
 </trkpt>
 <trkpt lat="30.046633333" lon="-91.596600000">
-<ele>0.000000</ele>
-<time>2002-05-25T19:00:22Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T19:00:22.980Z</time>
 </trkpt>
 <trkpt lat="30.046400000" lon="-91.597650000">
-<ele>0.000000</ele>
-<time>2002-05-25T19:01:41Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T19:01:41.980Z</time>
 </trkpt>
 <trkpt lat="30.046233333" lon="-91.598466667">
-<ele>0.000000</ele>
-<time>2002-05-25T19:02:48Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T19:02:48.990Z</time>
 </trkpt>
 <trkpt lat="30.046316667" lon="-91.598966667">
-<ele>0.000000</ele>
-<time>2002-05-25T19:03:43Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T19:03:43.980Z</time>
 </trkpt>
 <trkpt lat="30.046783333" lon="-91.599283333">
-<ele>0.000000</ele>
-<time>2002-05-25T19:04:49Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T19:04:49.990Z</time>
 </trkpt>
 <trkpt lat="30.047133333" lon="-91.599666667">
-<ele>0.000000</ele>
-<time>2002-05-25T19:05:57Z</time>
+  <ele>0.000000</ele>
+<time>2002-05-25T19:05:57.980Z</time>
 </trkpt>
 </trkseg>
 </trk>
index afd743566ef72c2a726a68e9a0b76f1f07fbf55c..c86662c12f4eedb0e3994e4701fec478f75a271f 100644 (file)
@@ -6,12 +6,12 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="45.458204984" minlon ="-75.770526640" maxlat="45.497519984" maxlon="-75.684934974" />
+<bounds minlat="45.458204984" minlon="-75.770526640" maxlat="45.497519984" maxlon="-75.684934974"/>
 <trk>
 <trkseg>
 <trkpt lat="45.460366651" lon="-75.767939974">
   <ele>33.700000</ele>
-<time>2005-05-09T19:02:01Z</time>
+<time>2005-05-09T19:02:01.517Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0001</name>
@@ -21,7 +21,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.460339984" lon="-75.767591640">
   <ele>33.700000</ele>
-<time>2005-05-09T19:02:03Z</time>
+<time>2005-05-09T19:02:03.517Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0002</name>
@@ -31,7 +31,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458376651" lon="-75.768483307">
   <ele>105.400000</ele>
-<time>2005-05-09T20:09:13Z</time>
+<time>2005-05-09T20:09:13.594Z</time>
   <course>251.259995</course>
   <speed>1.419867</speed>
   <name>WP0003</name>
@@ -41,7 +41,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458293318" lon="-75.768566640">
   <ele>104.600000</ele>
-<time>2005-05-09T20:09:23Z</time>
+<time>2005-05-09T20:09:23.593Z</time>
   <course>260.420013</course>
   <speed>1.450733</speed>
   <name>WP0004</name>
@@ -51,7 +51,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458298318" lon="-75.768701640">
   <ele>102.500000</ele>
-<time>2005-05-09T20:09:44Z</time>
+<time>2005-05-09T20:09:44.592Z</time>
   <course>232.600006</course>
   <speed>0.334389</speed>
   <name>WP0005</name>
@@ -61,7 +61,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458266651" lon="-75.769021640">
   <ele>108.900000</ele>
-<time>2005-05-09T20:10:04Z</time>
+<time>2005-05-09T20:10:04.590Z</time>
   <course>297.440002</course>
   <speed>1.106055</speed>
   <name>WP0006</name>
@@ -71,7 +71,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458204984" lon="-75.770038307">
   <ele>108.400000</ele>
-<time>2005-05-09T20:11:22Z</time>
+<time>2005-05-09T20:11:22.585Z</time>
   <course>290.190002</course>
   <speed>1.162644</speed>
   <name>WP0007</name>
@@ -81,7 +81,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458274984" lon="-75.770526640">
   <ele>110.600000</ele>
-<time>2005-05-09T20:11:50Z</time>
+<time>2005-05-09T20:11:50.583Z</time>
   <course>30.709999</course>
   <speed>1.111200</speed>
   <name>WP0008</name>
@@ -91,7 +91,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.458353318" lon="-75.770481640">
   <ele>106.200000</ele>
-<time>2005-05-09T20:14:00Z</time>
+<time>2005-05-09T20:14:00.575Z</time>
   <course>32.630001</course>
   <speed>0.185200</speed>
   <name>WP0009</name>
@@ -101,7 +101,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492471651" lon="-75.717699974">
   <ele>34.100000</ele>
-<time>2005-05-09T21:36:00Z</time>
+<time>2005-05-09T21:36:00.758Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0010</name>
@@ -111,7 +111,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492506651" lon="-75.717636640">
   <ele>-22.300000</ele>
-<time>2005-06-03T21:36:06Z</time>
+<time>2005-06-03T21:36:06.757Z</time>
   <course>150.550003</course>
   <speed>1.476456</speed>
   <name>WP0011</name>
@@ -121,7 +121,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492283318" lon="-75.717694974">
   <ele>-34.800000</ele>
-<time>2005-06-03T21:36:08Z</time>
+<time>2005-06-03T21:36:08.757Z</time>
   <course>140.809998</course>
   <speed>1.533044</speed>
   <name>WP0012</name>
@@ -131,7 +131,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492396651" lon="-75.717684974">
   <ele>-28.700000</ele>
-<time>2005-06-03T21:36:09Z</time>
+<time>2005-06-03T21:36:09.757Z</time>
   <course>165.830002</course>
   <speed>1.342700</speed>
   <name>WP0013</name>
@@ -141,7 +141,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492381651" lon="-75.717586640">
   <ele>-21.000000</ele>
-<time>2005-06-03T21:36:17Z</time>
+<time>2005-06-03T21:36:17.757Z</time>
   <course>166.179993</course>
   <speed>0.735656</speed>
   <name>WP0014</name>
@@ -151,7 +151,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492294984" lon="-75.717593307">
   <ele>-25.300000</ele>
-<time>2005-06-03T21:36:31Z</time>
+<time>2005-06-03T21:36:31.756Z</time>
   <course>114.070000</course>
   <speed>1.507322</speed>
   <name>WP0015</name>
@@ -159,7 +159,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491944984" lon="-75.717474974">
   <ele>43.400000</ele>
-<time>2005-06-03T21:36:45Z</time>
+<time>2005-06-03T21:36:45.755Z</time>
   <course>79.120003</course>
   <speed>1.517611</speed>
   <name>WP0016</name>
@@ -169,7 +169,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491938318" lon="-75.717353307">
   <ele>39.300000</ele>
-<time>2005-06-03T21:36:51Z</time>
+<time>2005-06-03T21:36:51.754Z</time>
   <course>65.169998</course>
   <speed>1.378711</speed>
   <name>WP0017</name>
@@ -179,7 +179,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491969984" lon="-75.717238307">
   <ele>48.300000</ele>
-<time>2005-06-03T21:36:58Z</time>
+<time>2005-06-03T21:36:58.754Z</time>
   <course>87.449997</course>
   <speed>1.260389</speed>
   <name>WP0018</name>
@@ -189,7 +189,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491994984" lon="-75.717094974">
   <ele>44.500000</ele>
-<time>2005-06-03T21:37:07Z</time>
+<time>2005-06-03T21:37:07.753Z</time>
   <course>88.230003</course>
   <speed>1.476456</speed>
   <name>WP0019</name>
@@ -199,7 +199,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491996651" lon="-75.716914974">
   <ele>39.900000</ele>
-<time>2005-06-03T21:37:18Z</time>
+<time>2005-06-03T21:37:18.753Z</time>
   <course>68.449997</course>
   <speed>1.558767</speed>
   <name>WP0020</name>
@@ -209,7 +209,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492019984" lon="-75.716781640">
   <ele>23.600000</ele>
-<time>2005-06-03T21:37:26Z</time>
+<time>2005-06-03T21:37:26.752Z</time>
   <course>140.080002</course>
   <speed>0.138900</speed>
   <name>WP0021</name>
@@ -219,7 +219,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492071651" lon="-75.716738307">
   <ele>46.700000</ele>
-<time>2005-06-03T21:37:46Z</time>
+<time>2005-06-03T21:37:46.751Z</time>
   <course>114.720001</course>
   <speed>0.195489</speed>
   <name>WP0022</name>
@@ -229,7 +229,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492071651" lon="-75.716736640">
   <ele>61.300000</ele>
-<time>2005-06-03T21:37:52Z</time>
+<time>2005-06-03T21:37:52.750Z</time>
   <course>128.500000</course>
   <speed>0.169767</speed>
   <name>WP0023</name>
@@ -239,7 +239,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492096651" lon="-75.716736640">
   <ele>74.600000</ele>
-<time>2005-06-03T21:38:16Z</time>
+<time>2005-06-03T21:38:16.749Z</time>
   <course>0.890000</course>
   <speed>0.262367</speed>
   <name>WP0024</name>
@@ -249,7 +249,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492099984" lon="-75.716729974">
   <ele>63.600000</ele>
-<time>2005-06-03T21:38:50Z</time>
+<time>2005-06-03T21:38:50.747Z</time>
   <course>214.169998</course>
   <speed>0.144044</speed>
   <name>WP0025</name>
@@ -259,7 +259,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492721651" lon="-75.718441640">
   <ele>83.600000</ele>
-<time>2005-06-03T21:55:06Z</time>
+<time>2005-06-03T21:55:06.472Z</time>
   <course>156.059998</course>
   <speed>0.205778</speed>
   <name>WP0026</name>
@@ -269,7 +269,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492656651" lon="-75.718409974">
   <ele>76.200000</ele>
-<time>2005-06-03T21:55:14Z</time>
+<time>2005-06-03T21:55:14.472Z</time>
   <course>136.899994</course>
   <speed>0.082311</speed>
   <name>WP0027</name>
@@ -279,7 +279,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492591651" lon="-75.718313307">
   <ele>76.300000</ele>
-<time>2005-06-03T21:57:31Z</time>
+<time>2005-06-03T21:57:31.463Z</time>
   <course>151.399994</course>
   <speed>0.108033</speed>
   <name>WP0028</name>
@@ -289,7 +289,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492568318" lon="-75.718309974">
   <ele>59.800000</ele>
-<time>2005-06-03T21:57:54Z</time>
+<time>2005-06-03T21:57:54.461Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0029</name>
@@ -299,7 +299,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492314984" lon="-75.718339974">
   <ele>34.300000</ele>
-<time>2005-06-04T23:06:26Z</time>
+<time>2005-06-04T23:06:26.359Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0030</name>
@@ -309,7 +309,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491909984" lon="-75.718324974">
   <ele>34.300000</ele>
-<time>2005-06-04T23:14:32Z</time>
+<time>2005-06-04T23:14:32.327Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0031</name>
@@ -319,7 +319,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492206651" lon="-75.718414974">
   <ele>34.300000</ele>
-<time>2005-06-04T23:14:43Z</time>
+<time>2005-06-04T23:14:43.327Z</time>
   <course>157.210007</course>
   <speed>0.036011</speed>
   <name>WP0032</name>
@@ -329,7 +329,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492689984" lon="-75.718359974">
   <ele>70.800000</ele>
-<time>2005-06-04T23:15:39Z</time>
+<time>2005-06-04T23:15:39.323Z</time>
   <course>31.549999</course>
   <speed>0.118322</speed>
   <name>WP0033</name>
@@ -339,7 +339,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492691651" lon="-75.718408307">
   <ele>61.200000</ele>
-<time>2005-06-04T23:16:38Z</time>
+<time>2005-06-04T23:16:38.319Z</time>
   <course>160.520004</course>
   <speed>1.044322</speed>
   <name>WP0034</name>
@@ -349,7 +349,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492601651" lon="-75.718438307">
   <ele>62.400000</ele>
-<time>2005-06-04T23:17:21Z</time>
+<time>2005-06-04T23:17:21.316Z</time>
   <course>162.570007</course>
   <speed>0.102889</speed>
   <name>WP0035</name>
@@ -357,7 +357,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492479984" lon="-75.718403307">
   <ele>54.200000</ele>
-<time>2005-06-04T23:22:58Z</time>
+<time>2005-06-04T23:22:58.294Z</time>
   <course>66.839996</course>
   <speed>0.411556</speed>
   <name>WP0036</name>
@@ -367,7 +367,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492566651" lon="-75.718339974">
   <ele>57.000000</ele>
-<time>2005-06-04T23:25:52Z</time>
+<time>2005-06-04T23:25:52.283Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0037</name>
@@ -377,7 +377,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492343318" lon="-75.722331640">
   <ele>0.000000</ele>
-<time>2005-06-04T23:39:14Z</time>
+<time>2005-06-04T23:39:14.663Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0038</name>
@@ -385,7 +385,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492314984" lon="-75.722923307">
   <ele>57.600000</ele>
-<time>2005-06-04T23:39:18Z</time>
+<time>2005-06-04T23:39:18.662Z</time>
   <course>0.000000</course>
   <speed>0.000000</speed>
   <name>WP0039</name>
@@ -395,7 +395,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492369984" lon="-75.722586640">
   <ele>74.800000</ele>
-<time>2005-06-04T23:39:19Z</time>
+<time>2005-06-04T23:39:19.662Z</time>
   <course>51.320000</course>
   <speed>0.087456</speed>
   <name>WP0040</name>
@@ -405,7 +405,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.493596651" lon="-75.728018307">
   <ele>95.100000</ele>
-<time>2005-06-04T23:44:29Z</time>
+<time>2005-06-04T23:44:29.868Z</time>
   <course>22.510000</course>
   <speed>0.092600</speed>
   <name>WP0041</name>
@@ -415,7 +415,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492388318" lon="-75.731491640">
   <ele>69.100000</ele>
-<time>2005-06-04T23:50:38Z</time>
+<time>2005-06-04T23:50:38.425Z</time>
   <course>272.899994</course>
   <speed>1.208944</speed>
   <name>WP0042</name>
@@ -425,7 +425,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492379984" lon="-75.731639974">
   <ele>71.300000</ele>
-<time>2005-06-04T23:52:35Z</time>
+<time>2005-06-04T23:52:35.417Z</time>
   <course>304.450012</course>
   <speed>1.188367</speed>
   <name>WP0043</name>
@@ -435,7 +435,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492419984" lon="-75.731754974">
   <ele>71.300000</ele>
-<time>2005-06-04T23:52:43Z</time>
+<time>2005-06-04T23:52:43.417Z</time>
   <course>321.899994</course>
   <speed>1.332411</speed>
   <name>WP0044</name>
@@ -445,7 +445,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492678318" lon="-75.732136640">
   <ele>71.300000</ele>
-<time>2005-06-04T23:53:15Z</time>
+<time>2005-06-04T23:53:15.415Z</time>
   <course>346.209991</course>
   <speed>0.853978</speed>
   <name>WP0045</name>
@@ -455,7 +455,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492764984" lon="-75.732181640">
   <ele>70.700000</ele>
-<time>2005-06-04T23:53:25Z</time>
+<time>2005-06-04T23:53:25.414Z</time>
   <course>31.530001</course>
   <speed>0.041156</speed>
   <name>WP0046</name>
@@ -465,7 +465,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.493056651" lon="-75.734448307">
   <ele>68.400000</ele>
-<time>2005-06-04T23:56:24Z</time>
+<time>2005-06-04T23:56:24.496Z</time>
   <course>124.980003</course>
   <speed>0.807678</speed>
   <name>WP0047</name>
@@ -475,7 +475,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.492984984" lon="-75.734376640">
   <ele>72.900000</ele>
-<time>2005-06-04T23:56:54Z</time>
+<time>2005-06-04T23:56:54.494Z</time>
   <course>301.549988</course>
   <speed>1.301544</speed>
   <name>WP0048</name>
@@ -485,7 +485,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.493048318" lon="-75.734484974">
   <ele>71.400000</ele>
-<time>2005-06-04T23:57:12Z</time>
+<time>2005-06-04T23:57:12.493Z</time>
   <course>312.899994</course>
   <speed>0.488722</speed>
   <name>WP0049</name>
@@ -495,7 +495,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.493248318" lon="-75.734873307">
   <ele>71.200000</ele>
-<time>2005-06-04T23:57:43Z</time>
+<time>2005-06-04T23:57:43.491Z</time>
   <course>54.860001</course>
   <speed>0.077167</speed>
   <name>WP0050</name>
@@ -505,7 +505,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.493511651" lon="-75.735343307">
   <ele>71.600000</ele>
-<time>2005-06-04T23:58:26Z</time>
+<time>2005-06-04T23:58:26.488Z</time>
   <course>338.209991</course>
   <speed>1.821133</speed>
   <name>WP0051</name>
@@ -515,7 +515,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494089984" lon="-75.736121640">
   <ele>71.000000</ele>
-<time>2005-06-04T00:00:00Z</time>
+<time>2005-06-04T00:00:00.482Z</time>
   <course>300.459991</course>
   <speed>0.632767</speed>
   <name>WP0052</name>
@@ -523,7 +523,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494091651" lon="-75.736254974">
   <ele>72.100000</ele>
-<time>2005-06-05T00:00:11Z</time>
+<time>2005-06-05T00:00:11.482Z</time>
   <course>306.429993</course>
   <speed>1.059756</speed>
   <name>WP0053</name>
@@ -531,7 +531,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494156651" lon="-75.736351640">
   <ele>72.700000</ele>
-<time>2005-06-05T00:00:20Z</time>
+<time>2005-06-05T00:00:20.481Z</time>
   <course>284.540009</course>
   <speed>0.967156</speed>
   <name>WP0054</name>
@@ -541,7 +541,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494316651" lon="-75.736706640">
   <ele>72.200000</ele>
-<time>2005-06-05T00:00:48Z</time>
+<time>2005-06-05T00:00:48.479Z</time>
   <course>310.510010</course>
   <speed>0.648200</speed>
   <name>WP0055</name>
@@ -549,7 +549,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494326651" lon="-75.736839974">
   <ele>72.500000</ele>
-<time>2005-06-05T00:00:59Z</time>
+<time>2005-06-05T00:00:59.478Z</time>
   <course>208.550003</course>
   <speed>0.529878</speed>
   <name>WP0056</name>
@@ -557,7 +557,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494348318" lon="-75.737104974">
   <ele>73.000000</ele>
-<time>2005-06-05T00:01:09Z</time>
+<time>2005-06-05T00:01:09.478Z</time>
   <course>292.980011</course>
   <speed>1.574200</speed>
   <name>WP0057</name>
@@ -565,7 +565,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494411651" lon="-75.737268307">
   <ele>73.300000</ele>
-<time>2005-06-05T00:01:44Z</time>
+<time>2005-06-05T00:01:44.475Z</time>
   <course>348.260010</course>
   <speed>1.409578</speed>
   <name>WP0058</name>
@@ -575,7 +575,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494488318" lon="-75.737228307">
   <ele>78.100000</ele>
-<time>2005-06-05T00:01:58Z</time>
+<time>2005-06-05T00:01:58.474Z</time>
   <course>357.940002</course>
   <speed>1.352989</speed>
   <name>WP0059</name>
@@ -585,7 +585,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494713318" lon="-75.737163307">
   <ele>77.000000</ele>
-<time>2005-06-05T00:02:16Z</time>
+<time>2005-06-05T00:02:16.473Z</time>
   <course>341.100006</course>
   <speed>0.905422</speed>
   <name>WP0060</name>
@@ -595,7 +595,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494818318" lon="-75.737188307">
   <ele>75.500000</ele>
-<time>2005-06-05T00:02:25Z</time>
+<time>2005-06-05T00:02:25.473Z</time>
   <course>11.500000</course>
   <speed>0.216067</speed>
   <name>WP0061</name>
@@ -605,7 +605,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495011651" lon="-75.737183307">
   <ele>71.000000</ele>
-<time>2005-06-05T00:02:42Z</time>
+<time>2005-06-05T00:02:42.472Z</time>
   <course>26.420000</course>
   <speed>0.807678</speed>
   <name>WP0062</name>
@@ -615,7 +615,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495254984" lon="-75.737171640">
   <ele>75.800000</ele>
-<time>2005-06-05T00:03:21Z</time>
+<time>2005-06-05T00:03:21.469Z</time>
   <course>37.529999</course>
   <speed>1.188367</speed>
   <name>WP0063</name>
@@ -625,7 +625,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495354984" lon="-75.737114974">
   <ele>72.600000</ele>
-<time>2005-06-05T00:03:31Z</time>
+<time>2005-06-05T00:03:31.468Z</time>
   <course>48.630001</course>
   <speed>1.527900</speed>
   <name>WP0064</name>
@@ -635,7 +635,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495581651" lon="-75.736874974">
   <ele>70.300000</ele>
-<time>2005-06-05T00:03:53Z</time>
+<time>2005-06-05T00:03:53.467Z</time>
   <course>26.750000</course>
   <speed>1.059756</speed>
   <name>WP0065</name>
@@ -645,7 +645,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495921651" lon="-75.736509974">
   <ele>74.600000</ele>
-<time>2005-06-05T00:04:31Z</time>
+<time>2005-06-05T00:04:31.464Z</time>
   <course>201.380005</course>
   <speed>0.843689</speed>
   <name>WP0066</name>
@@ -655,7 +655,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495844984" lon="-75.736588307">
   <ele>76.300000</ele>
-<time>2005-06-05T00:05:05Z</time>
+<time>2005-06-05T00:05:05.462Z</time>
   <course>117.099998</course>
   <speed>0.457856</speed>
   <name>WP0067</name>
@@ -665,7 +665,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495876651" lon="-75.736471640">
   <ele>72.100000</ele>
-<time>2005-06-05T00:05:45Z</time>
+<time>2005-06-05T00:05:45.459Z</time>
   <course>130.149994</course>
   <speed>0.149189</speed>
   <name>WP0068</name>
@@ -675,7 +675,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495916651" lon="-75.736536640">
   <ele>80.900000</ele>
-<time>2005-06-05T00:06:19Z</time>
+<time>2005-06-05T00:06:19.457Z</time>
   <course>129.250000</course>
   <speed>0.313811</speed>
   <name>WP0069</name>
@@ -685,7 +685,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495866651" lon="-75.736521640">
   <ele>89.500000</ele>
-<time>2005-06-05T00:06:25Z</time>
+<time>2005-06-05T00:06:25.457Z</time>
   <course>87.769997</course>
   <speed>0.061733</speed>
   <name>WP0070</name>
@@ -695,7 +695,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496203318" lon="-75.734848307">
   <ele>102.100000</ele>
-<time>2005-06-05T00:37:53Z</time>
+<time>2005-06-05T00:37:53.913Z</time>
   <course>164.850006</course>
   <speed>0.123467</speed>
   <name>WP0071</name>
@@ -705,7 +705,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496083318" lon="-75.734841640">
   <ele>102.800000</ele>
-<time>2005-06-11T00:38:21Z</time>
+<time>2005-06-11T00:38:21.912Z</time>
   <course>244.000000</course>
   <speed>0.396122</speed>
   <name>WP0072</name>
@@ -715,7 +715,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496109984" lon="-75.734754974">
   <ele>94.100000</ele>
-<time>2005-06-11T00:38:55Z</time>
+<time>2005-06-11T00:38:55.909Z</time>
   <course>86.839996</course>
   <speed>0.812822</speed>
   <name>WP0073</name>
@@ -725,7 +725,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496299984" lon="-75.734379974">
   <ele>93.300000</ele>
-<time>2005-06-11T00:39:44Z</time>
+<time>2005-06-11T00:39:44.906Z</time>
   <course>216.110001</course>
   <speed>0.118322</speed>
   <name>WP0074</name>
@@ -735,7 +735,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496259984" lon="-75.734368307">
   <ele>83.800000</ele>
-<time>2005-06-11T00:40:44Z</time>
+<time>2005-06-11T00:40:44.902Z</time>
   <course>250.699997</course>
   <speed>1.198656</speed>
   <name>WP0075</name>
@@ -743,7 +743,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496204984" lon="-75.734474974">
   <ele>85.100000</ele>
-<time>2005-06-11T00:41:04Z</time>
+<time>2005-06-11T00:41:04.901Z</time>
   <course>238.919998</course>
   <speed>1.656511</speed>
   <name>WP0076</name>
@@ -751,7 +751,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496191651" lon="-75.734614974">
   <ele>85.600000</ele>
-<time>2005-06-11T00:41:11Z</time>
+<time>2005-06-11T00:41:11.900Z</time>
   <course>235.460007</course>
   <speed>1.718244</speed>
   <name>WP0077</name>
@@ -761,7 +761,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496134984" lon="-75.734768307">
   <ele>85.900000</ele>
-<time>2005-06-11T00:41:19Z</time>
+<time>2005-06-11T00:41:19.900Z</time>
   <course>248.250000</course>
   <speed>1.342700</speed>
   <name>WP0078</name>
@@ -769,7 +769,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496108318" lon="-75.734911640">
   <ele>85.200000</ele>
-<time>2005-06-11T00:41:27Z</time>
+<time>2005-06-11T00:41:27.899Z</time>
   <course>260.279999</course>
   <speed>0.992878</speed>
   <name>WP0079</name>
@@ -779,7 +779,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496044984" lon="-75.735079974">
   <ele>87.100000</ele>
-<time>2005-06-11T00:41:43Z</time>
+<time>2005-06-11T00:41:43.898Z</time>
   <course>215.869995</course>
   <speed>1.270678</speed>
   <name>WP0080</name>
@@ -789,7 +789,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495993318" lon="-75.735166640">
   <ele>82.300000</ele>
-<time>2005-06-11T00:41:51Z</time>
+<time>2005-06-11T00:41:51.898Z</time>
   <course>238.919998</course>
   <speed>1.095767</speed>
   <name>WP0081</name>
@@ -799,7 +799,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495931651" lon="-75.735276640">
   <ele>78.800000</ele>
-<time>2005-06-11T00:42:00Z</time>
+<time>2005-06-11T00:42:00.897Z</time>
   <course>235.889999</course>
   <speed>0.992878</speed>
   <name>WP0082</name>
@@ -809,7 +809,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495874984" lon="-75.735439974">
   <ele>75.500000</ele>
-<time>2005-06-11T00:42:14Z</time>
+<time>2005-06-11T00:42:14.896Z</time>
   <course>228.059998</course>
   <speed>0.987733</speed>
   <name>WP0083</name>
@@ -819,7 +819,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495826651" lon="-75.735561640">
   <ele>74.100000</ele>
-<time>2005-06-11T00:42:25Z</time>
+<time>2005-06-11T00:42:25.895Z</time>
   <course>322.799988</course>
   <speed>1.152356</speed>
   <name>WP0084</name>
@@ -829,7 +829,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495858318" lon="-75.735689974">
   <ele>72.500000</ele>
-<time>2005-06-11T00:42:50Z</time>
+<time>2005-06-11T00:42:50.894Z</time>
   <course>333.309998</course>
   <speed>0.468144</speed>
   <name>WP0085</name>
@@ -837,7 +837,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495931651" lon="-75.735779974">
   <ele>74.000000</ele>
-<time>2005-06-11T00:43:01Z</time>
+<time>2005-06-11T00:43:01.893Z</time>
   <course>154.389999</course>
   <speed>1.275822</speed>
   <name>WP0086</name>
@@ -847,7 +847,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495899984" lon="-75.735658307">
   <ele>74.700000</ele>
-<time>2005-06-11T00:43:09Z</time>
+<time>2005-06-11T00:43:09.893Z</time>
   <course>197.889999</course>
   <speed>1.234667</speed>
   <name>WP0087</name>
@@ -857,21 +857,21 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495808318" lon="-75.735613307">
   <ele>72.300000</ele>
-<time>2005-06-11T00:43:38Z</time>
+<time>2005-06-11T00:43:38.891Z</time>
   <course>194.039993</course>
   <speed>0.365256</speed>
   <name>WP0088</name>
 </trkpt>
 <trkpt lat="45.495711651" lon="-75.735599974">
   <ele>72.200000</ele>
-<time>2005-06-11T00:44:05Z</time>
+<time>2005-06-11T00:44:05.889Z</time>
   <course>237.380005</course>
   <speed>0.776811</speed>
   <name>WP0089</name>
 </trkpt>
 <trkpt lat="45.495679984" lon="-75.735724974">
   <ele>73.000000</ele>
-<time>2005-06-11T00:44:11Z</time>
+<time>2005-06-11T00:44:11.888Z</time>
   <course>272.200012</course>
   <speed>0.874556</speed>
   <name>WP0090</name>
@@ -881,7 +881,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495651651" lon="-75.735859974">
   <ele>74.400000</ele>
-<time>2005-06-11T00:44:23Z</time>
+<time>2005-06-11T00:44:23.888Z</time>
   <course>214.550003</course>
   <speed>0.174911</speed>
   <name>WP0091</name>
@@ -889,7 +889,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495756651" lon="-75.735824974">
   <ele>81.200000</ele>
-<time>2005-06-11T00:44:43Z</time>
+<time>2005-06-11T00:44:43.886Z</time>
   <course>209.389999</course>
   <speed>0.216067</speed>
   <name>WP0092</name>
@@ -899,7 +899,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495728318" lon="-75.735801640">
   <ele>70.100000</ele>
-<time>2005-06-11T00:44:47Z</time>
+<time>2005-06-11T00:44:47.886Z</time>
   <course>256.739990</course>
   <speed>0.673922</speed>
   <name>WP0093</name>
@@ -909,7 +909,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495708318" lon="-75.735911640">
   <ele>64.400000</ele>
-<time>2005-06-11T00:45:02Z</time>
+<time>2005-06-11T00:45:02.885Z</time>
   <course>294.750000</course>
   <speed>0.817967</speed>
   <name>WP0094</name>
@@ -917,7 +917,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495683318" lon="-75.736064974">
   <ele>64.000000</ele>
-<time>2005-06-11T00:45:35Z</time>
+<time>2005-06-11T00:45:35.883Z</time>
   <course>174.509995</course>
   <speed>0.617333</speed>
   <name>WP0095</name>
@@ -925,7 +925,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495584984" lon="-75.736138307">
   <ele>64.600000</ele>
-<time>2005-06-11T00:46:07Z</time>
+<time>2005-06-11T00:46:07.881Z</time>
   <course>122.470001</course>
   <speed>0.720222</speed>
   <name>WP0096</name>
@@ -935,7 +935,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495651651" lon="-75.736043307">
   <ele>67.300000</ele>
-<time>2005-06-11T00:46:36Z</time>
+<time>2005-06-11T00:46:36.879Z</time>
   <course>189.600006</course>
   <speed>0.128611</speed>
   <name>WP0097</name>
@@ -945,7 +945,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495691651" lon="-75.735939974">
   <ele>71.400000</ele>
-<time>2005-06-11T00:48:44Z</time>
+<time>2005-06-11T00:48:44.870Z</time>
   <course>182.949997</course>
   <speed>0.108033</speed>
   <name>WP0098</name>
@@ -955,7 +955,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495706651" lon="-75.736066640">
   <ele>71.700000</ele>
-<time>2005-06-11T00:49:14Z</time>
+<time>2005-06-11T00:49:14.868Z</time>
   <course>52.070000</course>
   <speed>0.164622</speed>
   <name>WP0099</name>
@@ -965,7 +965,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495733318" lon="-75.735924974">
   <ele>72.300000</ele>
-<time>2005-06-11T00:51:19Z</time>
+<time>2005-06-11T00:51:19.860Z</time>
   <course>155.990005</course>
   <speed>0.113178</speed>
   <name>WP0100</name>
@@ -975,7 +975,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495666651" lon="-75.735996640">
   <ele>81.200000</ele>
-<time>2005-06-11T00:51:31Z</time>
+<time>2005-06-11T00:51:31.859Z</time>
   <course>97.730003</course>
   <speed>1.111200</speed>
   <name>WP0101</name>
@@ -985,7 +985,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495646651" lon="-75.735903307">
   <ele>74.500000</ele>
-<time>2005-06-11T00:51:43Z</time>
+<time>2005-06-11T00:51:43.858Z</time>
   <course>50.860001</course>
   <speed>1.625644</speed>
   <name>WP0102</name>
@@ -993,7 +993,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495689984" lon="-75.735704974">
   <ele>74.700000</ele>
-<time>2005-06-11T00:51:53Z</time>
+<time>2005-06-11T00:51:53.858Z</time>
   <course>44.029999</course>
   <speed>1.347844</speed>
   <name>WP0103</name>
@@ -1003,7 +1003,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495769984" lon="-75.735519974">
   <ele>76.200000</ele>
-<time>2005-06-11T00:52:08Z</time>
+<time>2005-06-11T00:52:08.857Z</time>
   <course>82.080002</course>
   <speed>0.715078</speed>
   <name>WP0104</name>
@@ -1013,7 +1013,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495858318" lon="-75.735479974">
   <ele>77.900000</ele>
-<time>2005-06-11T00:52:19Z</time>
+<time>2005-06-11T00:52:19.856Z</time>
   <course>80.239998</course>
   <speed>0.745944</speed>
   <name>WP0105</name>
@@ -1023,7 +1023,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495914984" lon="-75.735378307">
   <ele>78.600000</ele>
-<time>2005-06-11T00:52:27Z</time>
+<time>2005-06-11T00:52:27.856Z</time>
   <course>47.939999</course>
   <speed>1.733678</speed>
   <name>WP0106</name>
@@ -1033,7 +1033,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495991651" lon="-75.735234974">
   <ele>80.700000</ele>
-<time>2005-06-11T00:52:37Z</time>
+<time>2005-06-11T00:52:37.855Z</time>
   <course>62.310001</course>
   <speed>1.116344</speed>
   <name>WP0107</name>
@@ -1043,7 +1043,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496076651" lon="-75.735043307">
   <ele>84.400000</ele>
-<time>2005-06-11T00:52:54Z</time>
+<time>2005-06-11T00:52:54.854Z</time>
   <course>59.770000</course>
   <speed>1.435300</speed>
   <name>WP0108</name>
@@ -1051,7 +1051,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496214984" lon="-75.734634974">
   <ele>92.600000</ele>
-<time>2005-06-11T00:53:33Z</time>
+<time>2005-06-11T00:53:33.851Z</time>
   <course>57.660000</course>
   <speed>1.260389</speed>
   <name>WP0109</name>
@@ -1061,7 +1061,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496243318" lon="-75.734476640">
   <ele>95.800000</ele>
-<time>2005-06-11T00:53:43Z</time>
+<time>2005-06-11T00:53:43.850Z</time>
   <course>55.730000</course>
   <speed>1.399289</speed>
   <name>WP0110</name>
@@ -1071,7 +1071,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496326651" lon="-75.734336640">
   <ele>94.700000</ele>
-<time>2005-06-11T00:53:53Z</time>
+<time>2005-06-11T00:53:53.850Z</time>
   <course>28.459999</course>
   <speed>1.286111</speed>
   <name>WP0111</name>
@@ -1081,7 +1081,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496198318" lon="-75.734216640">
   <ele>59.200000</ele>
-<time>2005-06-11T14:39:26Z</time>
+<time>2005-06-11T14:39:26.882Z</time>
   <course>245.169998</course>
   <speed>0.972300</speed>
   <name>WP0112</name>
@@ -1091,7 +1091,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496179984" lon="-75.734338307">
   <ele>55.200000</ele>
-<time>2005-06-12T14:39:42Z</time>
+<time>2005-06-12T14:39:42.881Z</time>
   <course>240.100006</course>
   <speed>1.553622</speed>
   <name>WP0113</name>
@@ -1101,7 +1101,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496081651" lon="-75.734656640">
   <ele>56.100000</ele>
-<time>2005-06-12T14:40:08Z</time>
+<time>2005-06-12T14:40:08.879Z</time>
   <course>238.809998</course>
   <speed>1.265533</speed>
   <name>WP0114</name>
@@ -1111,7 +1111,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495996651" lon="-75.734781640">
   <ele>54.500000</ele>
-<time>2005-06-12T14:40:16Z</time>
+<time>2005-06-12T14:40:16.878Z</time>
   <course>242.740005</course>
   <speed>1.183222</speed>
   <name>WP0115</name>
@@ -1121,7 +1121,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495906651" lon="-75.734983307">
   <ele>48.700000</ele>
-<time>2005-06-12T14:40:33Z</time>
+<time>2005-06-12T14:40:33.877Z</time>
   <course>236.539993</course>
   <speed>1.003167</speed>
   <name>WP0116</name>
@@ -1129,7 +1129,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495801651" lon="-75.735363307">
   <ele>43.700000</ele>
-<time>2005-06-12T14:41:02Z</time>
+<time>2005-06-12T14:41:02.875Z</time>
   <course>261.720001</course>
   <speed>1.713100</speed>
   <name>WP0117</name>
@@ -1139,7 +1139,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495801651" lon="-75.735514974">
   <ele>45.100000</ele>
-<time>2005-06-12T14:41:16Z</time>
+<time>2005-06-12T14:41:16.874Z</time>
   <course>298.739990</course>
   <speed>1.265533</speed>
   <name>WP0118</name>
@@ -1147,7 +1147,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495833318" lon="-75.735654974">
   <ele>44.600000</ele>
-<time>2005-06-12T14:41:24Z</time>
+<time>2005-06-12T14:41:24.874Z</time>
   <course>313.660004</course>
   <speed>1.188367</speed>
   <name>WP0119</name>
@@ -1157,7 +1157,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495914984" lon="-75.735726640">
   <ele>44.100000</ele>
-<time>2005-06-12T14:41:31Z</time>
+<time>2005-06-12T14:41:31.873Z</time>
   <course>330.829987</course>
   <speed>1.347844</speed>
   <name>WP0120</name>
@@ -1165,7 +1165,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495956651" lon="-75.735839974">
   <ele>43.000000</ele>
-<time>2005-06-12T14:41:40Z</time>
+<time>2005-06-12T14:41:40.873Z</time>
   <course>334.989990</course>
   <speed>1.198656</speed>
   <name>WP0121</name>
@@ -1173,7 +1173,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496036651" lon="-75.735908307">
   <ele>42.000000</ele>
-<time>2005-06-12T14:41:48Z</time>
+<time>2005-06-12T14:41:48.872Z</time>
   <course>341.049988</course>
   <speed>1.687378</speed>
   <name>WP0122</name>
@@ -1183,7 +1183,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496151651" lon="-75.735971640">
   <ele>41.400000</ele>
-<time>2005-06-12T14:41:55Z</time>
+<time>2005-06-12T14:41:55.872Z</time>
   <course>1.620000</course>
   <speed>1.594778</speed>
   <name>WP0123</name>
@@ -1193,7 +1193,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496328318" lon="-75.735998307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:05Z</time>
+<time>2005-06-12T14:42:05.871Z</time>
   <course>18.180000</course>
   <speed>1.106055</speed>
   <name>WP0124</name>
@@ -1203,7 +1203,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496431651" lon="-75.735963307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:14Z</time>
+<time>2005-06-12T14:42:14.871Z</time>
   <course>10.700000</course>
   <speed>1.311833</speed>
   <name>WP0125</name>
@@ -1211,7 +1211,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496608318" lon="-75.735874974">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:31Z</time>
+<time>2005-06-12T14:42:31.870Z</time>
   <course>333.260010</course>
   <speed>0.766522</speed>
   <name>WP0126</name>
@@ -1221,7 +1221,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496763318" lon="-75.735828307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:44Z</time>
+<time>2005-06-12T14:42:44.869Z</time>
   <course>348.489990</course>
   <speed>1.126633</speed>
   <name>WP0127</name>
@@ -1229,7 +1229,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496854984" lon="-75.735886640">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:50Z</time>
+<time>2005-06-12T14:42:50.868Z</time>
   <course>335.130005</course>
   <speed>1.106055</speed>
   <name>WP0128</name>
@@ -1237,7 +1237,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496996651" lon="-75.735931640">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:03Z</time>
+<time>2005-06-12T14:43:03.867Z</time>
   <course>356.950012</course>
   <speed>1.733678</speed>
   <name>WP0129</name>
@@ -1245,7 +1245,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497081651" lon="-75.735889974">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:06Z</time>
+<time>2005-06-12T14:43:06.867Z</time>
   <course>344.679993</course>
   <speed>0.977444</speed>
   <name>WP0130</name>
@@ -1253,7 +1253,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497164984" lon="-75.735838307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:15Z</time>
+<time>2005-06-12T14:43:15.867Z</time>
   <course>69.209999</course>
   <speed>1.239811</speed>
   <name>WP0131</name>
@@ -1261,7 +1261,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497229984" lon="-75.735719974">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:24Z</time>
+<time>2005-06-12T14:43:24.866Z</time>
   <course>83.389999</course>
   <speed>1.491889</speed>
   <name>WP0132</name>
@@ -1271,7 +1271,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497303318" lon="-75.735568307">
   <ele>41.700000</ele>
-<time>2005-06-12T14:43:34Z</time>
+<time>2005-06-12T14:43:34.865Z</time>
   <course>93.379997</course>
   <speed>1.569056</speed>
   <name>WP0133</name>
@@ -1281,7 +1281,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497301651" lon="-75.735439974">
   <ele>41.700000</ele>
-<time>2005-06-12T14:43:41Z</time>
+<time>2005-06-12T14:43:41.865Z</time>
   <course>105.099998</course>
   <speed>1.831422</speed>
   <name>WP0134</name>
@@ -1291,7 +1291,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497318318" lon="-75.735193307">
   <ele>41.800000</ele>
-<time>2005-06-12T14:43:54Z</time>
+<time>2005-06-12T14:43:54.864Z</time>
   <course>63.990002</course>
   <speed>1.373567</speed>
   <name>WP0135</name>
@@ -1299,7 +1299,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497329984" lon="-75.734973307">
   <ele>42.300000</ele>
-<time>2005-06-12T14:44:06Z</time>
+<time>2005-06-12T14:44:06.863Z</time>
   <course>67.769997</course>
   <speed>1.769689</speed>
   <name>WP0136</name>
@@ -1309,7 +1309,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497464984" lon="-75.733798307">
   <ele>45.200000</ele>
-<time>2005-06-12T14:44:53Z</time>
+<time>2005-06-12T14:44:53.860Z</time>
   <course>108.410004</course>
   <speed>1.358133</speed>
   <name>WP0137</name>
@@ -1319,7 +1319,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497519984" lon="-75.733038307">
   <ele>46.700000</ele>
-<time>2005-06-12T14:45:30Z</time>
+<time>2005-06-12T14:45:30.858Z</time>
   <course>104.510002</course>
   <speed>1.219233</speed>
   <name>WP0138</name>
@@ -1329,7 +1329,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497474984" lon="-75.732808307">
   <ele>47.400000</ele>
-<time>2005-06-12T14:45:44Z</time>
+<time>2005-06-12T14:45:44.857Z</time>
   <course>260.720001</course>
   <speed>1.023744</speed>
   <name>WP0139</name>
@@ -1339,7 +1339,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497466651" lon="-75.732938307">
   <ele>48.300000</ele>
-<time>2005-06-12T14:45:55Z</time>
+<time>2005-06-12T14:45:55.856Z</time>
   <course>274.910004</course>
   <speed>1.399289</speed>
   <name>WP0140</name>
@@ -1347,14 +1347,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497506651" lon="-75.733146640">
   <ele>49.000000</ele>
-<time>2005-06-12T14:46:07Z</time>
+<time>2005-06-12T14:46:07.855Z</time>
   <course>252.429993</course>
   <speed>0.802533</speed>
   <name>WP0141</name>
 </trkpt>
 <trkpt lat="45.497499984" lon="-75.733361640">
   <ele>49.400000</ele>
-<time>2005-06-12T14:46:22Z</time>
+<time>2005-06-12T14:46:22.854Z</time>
   <course>174.869995</course>
   <speed>0.504156</speed>
   <name>WP0142</name>
@@ -1362,7 +1362,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497463318" lon="-75.733511640">
   <ele>49.900000</ele>
-<time>2005-06-12T14:46:37Z</time>
+<time>2005-06-12T14:46:37.853Z</time>
   <course>223.550003</course>
   <speed>0.838544</speed>
   <name>WP0143</name>
@@ -1372,7 +1372,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497483318" lon="-75.733636640">
   <ele>49.500000</ele>
-<time>2005-06-12T14:47:06Z</time>
+<time>2005-06-12T14:47:06.852Z</time>
   <course>255.070007</course>
   <speed>1.244956</speed>
   <name>WP0144</name>
@@ -1382,7 +1382,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497466651" lon="-75.733898307">
   <ele>55.000000</ele>
-<time>2005-06-12T14:47:31Z</time>
+<time>2005-06-12T14:47:31.850Z</time>
   <course>267.149994</course>
   <speed>1.080333</speed>
   <name>WP0145</name>
@@ -1392,7 +1392,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497471651" lon="-75.734046640">
   <ele>56.600000</ele>
-<time>2005-06-12T14:47:40Z</time>
+<time>2005-06-12T14:47:40.849Z</time>
   <course>158.740005</course>
   <speed>0.761378</speed>
   <name>WP0146</name>
@@ -1402,7 +1402,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497383318" lon="-75.734076640">
   <ele>56.100000</ele>
-<time>2005-06-12T14:48:17Z</time>
+<time>2005-06-12T14:48:17.847Z</time>
   <course>233.080002</course>
   <speed>1.121489</speed>
   <name>WP0147</name>
@@ -1412,7 +1412,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497269984" lon="-75.734148307">
   <ele>56.700000</ele>
-<time>2005-06-12T14:48:37Z</time>
+<time>2005-06-12T14:48:37.846Z</time>
   <course>150.190002</course>
   <speed>0.169767</speed>
   <name>WP0148</name>
@@ -1420,7 +1420,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497241651" lon="-75.734263307">
   <ele>70.600000</ele>
-<time>2005-06-12T14:49:04Z</time>
+<time>2005-06-12T14:49:04.844Z</time>
   <course>155.179993</course>
   <speed>0.915711</speed>
   <name>WP0149</name>
@@ -1430,7 +1430,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497159984" lon="-75.734243307">
   <ele>75.600000</ele>
-<time>2005-06-12T14:49:14Z</time>
+<time>2005-06-12T14:49:14.843Z</time>
   <course>137.089996</course>
   <speed>0.571033</speed>
   <name>WP0150</name>
@@ -1440,7 +1440,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497066651" lon="-75.734216640">
   <ele>76.100000</ele>
-<time>2005-06-12T14:49:29Z</time>
+<time>2005-06-12T14:49:29.842Z</time>
   <course>356.690002</course>
   <speed>0.226356</speed>
   <name>WP0151</name>
@@ -1450,7 +1450,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496981651" lon="-75.734176640">
   <ele>77.400000</ele>
-<time>2005-06-12T14:49:49Z</time>
+<time>2005-06-12T14:49:49.841Z</time>
   <course>233.190002</course>
   <speed>0.926000</speed>
   <name>WP0152</name>
@@ -1460,7 +1460,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497001651" lon="-75.734269974">
   <ele>84.500000</ele>
-<time>2005-06-12T14:50:10Z</time>
+<time>2005-06-12T14:50:10.839Z</time>
   <course>66.459999</course>
   <speed>1.075189</speed>
   <name>WP0153</name>
@@ -1468,7 +1468,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497056651" lon="-75.734181640">
   <ele>90.200000</ele>
-<time>2005-06-12T14:50:25Z</time>
+<time>2005-06-12T14:50:25.839Z</time>
   <course>285.640015</course>
   <speed>0.853978</speed>
   <name>WP0154</name>
@@ -1476,7 +1476,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497098318" lon="-75.734301640">
   <ele>93.200000</ele>
-<time>2005-06-12T14:50:45Z</time>
+<time>2005-06-12T14:50:45.837Z</time>
   <course>250.550003</course>
   <speed>1.214089</speed>
   <name>WP0155</name>
@@ -1484,7 +1484,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497131651" lon="-75.734461640">
   <ele>94.400000</ele>
-<time>2005-06-12T14:50:55Z</time>
+<time>2005-06-12T14:50:55.837Z</time>
   <course>245.679993</course>
   <speed>1.100911</speed>
   <name>WP0156</name>
@@ -1494,7 +1494,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497083318" lon="-75.734576640">
   <ele>95.400000</ele>
-<time>2005-06-12T14:51:04Z</time>
+<time>2005-06-12T14:51:04.836Z</time>
   <course>244.559998</course>
   <speed>1.188367</speed>
   <name>WP0157</name>
@@ -1502,7 +1502,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497011651" lon="-75.734718307">
   <ele>96.500000</ele>
-<time>2005-06-12T14:51:16Z</time>
+<time>2005-06-12T14:51:16.835Z</time>
   <course>262.299988</course>
   <speed>1.671944</speed>
   <name>WP0158</name>
@@ -1512,7 +1512,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.497041651" lon="-75.734841640">
   <ele>96.300000</ele>
-<time>2005-06-12T14:51:38Z</time>
+<time>2005-06-12T14:51:38.834Z</time>
   <course>207.820007</course>
   <speed>1.070044</speed>
   <name>WP0159</name>
@@ -1520,7 +1520,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496978318" lon="-75.734936640">
   <ele>97.000000</ele>
-<time>2005-06-12T14:51:47Z</time>
+<time>2005-06-12T14:51:47.833Z</time>
   <course>269.070007</course>
   <speed>1.404433</speed>
   <name>WP0160</name>
@@ -1530,7 +1530,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496954984" lon="-75.735069974">
   <ele>96.900000</ele>
-<time>2005-06-12T14:51:57Z</time>
+<time>2005-06-12T14:51:57.832Z</time>
   <course>229.419998</course>
   <speed>0.982589</speed>
   <name>WP0161</name>
@@ -1538,7 +1538,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496956651" lon="-75.735244974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:52:10Z</time>
+<time>2005-06-12T14:52:10.832Z</time>
   <course>242.610001</course>
   <speed>0.730511</speed>
   <name>WP0162</name>
@@ -1548,7 +1548,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496894984" lon="-75.735343307">
   <ele>98.600000</ele>
-<time>2005-06-12T14:52:24Z</time>
+<time>2005-06-12T14:52:24.831Z</time>
   <course>220.550003</course>
   <speed>1.497033</speed>
   <name>WP0163</name>
@@ -1558,7 +1558,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496828318" lon="-75.735484974">
   <ele>98.400000</ele>
-<time>2005-06-12T14:52:38Z</time>
+<time>2005-06-12T14:52:38.830Z</time>
   <course>237.889999</course>
   <speed>1.106055</speed>
   <name>WP0164</name>
@@ -1566,7 +1566,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496764984" lon="-75.735634974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:52:51Z</time>
+<time>2005-06-12T14:52:51.829Z</time>
   <course>253.720001</course>
   <speed>1.445589</speed>
   <name>WP0165</name>
@@ -1576,7 +1576,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496698318" lon="-75.735818307">
   <ele>97.000000</ele>
-<time>2005-06-12T14:53:04Z</time>
+<time>2005-06-12T14:53:04.828Z</time>
   <course>224.910004</course>
   <speed>2.515633</speed>
   <name>WP0166</name>
@@ -1586,7 +1586,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496658318" lon="-75.735986640">
   <ele>96.600000</ele>
-<time>2005-06-12T14:53:12Z</time>
+<time>2005-06-12T14:53:12.828Z</time>
   <course>204.449997</course>
   <speed>2.459044</speed>
   <name>WP0167</name>
@@ -1596,7 +1596,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496573318" lon="-75.736061640">
   <ele>96.100000</ele>
-<time>2005-06-12T14:53:17Z</time>
+<time>2005-06-12T14:53:17.827Z</time>
   <course>185.449997</course>
   <speed>2.165811</speed>
   <name>WP0168</name>
@@ -1606,7 +1606,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496441651" lon="-75.736114974">
   <ele>94.800000</ele>
-<time>2005-06-12T14:53:25Z</time>
+<time>2005-06-12T14:53:25.827Z</time>
   <course>157.490005</course>
   <speed>2.021767</speed>
   <name>WP0169</name>
@@ -1616,7 +1616,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496343318" lon="-75.736063307">
   <ele>95.200000</ele>
-<time>2005-06-12T14:53:30Z</time>
+<time>2005-06-12T14:53:30.826Z</time>
   <course>137.639999</course>
   <speed>1.764544</speed>
   <name>WP0170</name>
@@ -1626,7 +1626,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495934984" lon="-75.735669974">
   <ele>93.600000</ele>
-<time>2005-06-12T14:53:51Z</time>
+<time>2005-06-12T14:53:51.825Z</time>
   <course>83.290001</course>
   <speed>1.455878</speed>
   <name>WP0171</name>
@@ -1636,7 +1636,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495949984" lon="-75.735524974">
   <ele>92.400000</ele>
-<time>2005-06-12T14:53:56Z</time>
+<time>2005-06-12T14:53:56.825Z</time>
   <course>86.800003</course>
   <speed>0.895133</speed>
   <name>WP0172</name>
@@ -1646,7 +1646,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495986651" lon="-75.735344974">
   <ele>91.200000</ele>
-<time>2005-06-12T14:54:07Z</time>
+<time>2005-06-12T14:54:07.824Z</time>
   <course>79.180000</course>
   <speed>0.828256</speed>
   <name>WP0173</name>
@@ -1656,7 +1656,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496024984" lon="-75.735221640">
   <ele>92.400000</ele>
-<time>2005-06-12T14:54:19Z</time>
+<time>2005-06-12T14:54:19.823Z</time>
   <course>82.589996</course>
   <speed>0.766522</speed>
   <name>WP0174</name>
@@ -1666,7 +1666,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496096651" lon="-75.734986640">
   <ele>94.400000</ele>
-<time>2005-06-12T14:54:46Z</time>
+<time>2005-06-12T14:54:46.821Z</time>
   <course>67.809998</course>
   <speed>0.956867</speed>
   <name>WP0175</name>
@@ -1676,7 +1676,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496131651" lon="-75.734836640">
   <ele>92.800000</ele>
-<time>2005-06-12T14:55:02Z</time>
+<time>2005-06-12T14:55:02.820Z</time>
   <course>43.900002</course>
   <speed>1.260389</speed>
   <name>WP0176</name>
@@ -1686,7 +1686,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496186651" lon="-75.734716640">
   <ele>94.900000</ele>
-<time>2005-06-12T14:55:11Z</time>
+<time>2005-06-12T14:55:11.820Z</time>
   <course>81.980003</course>
   <speed>1.142067</speed>
   <name>WP0177</name>
@@ -1696,7 +1696,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496241651" lon="-75.734586640">
   <ele>95.600000</ele>
-<time>2005-06-12T14:55:21Z</time>
+<time>2005-06-12T14:55:21.819Z</time>
   <course>109.800003</course>
   <speed>0.056589</speed>
   <name>WP0178</name>
@@ -1706,7 +1706,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496301651" lon="-75.734363307">
   <ele>96.300000</ele>
-<time>2005-06-12T14:55:43Z</time>
+<time>2005-06-12T14:55:43.818Z</time>
   <course>206.750000</course>
   <speed>0.627622</speed>
   <name>WP0179</name>
@@ -1716,7 +1716,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496216651" lon="-75.734409974">
   <ele>96.300000</ele>
-<time>2005-06-12T14:56:17Z</time>
+<time>2005-06-12T14:56:17.815Z</time>
   <course>186.479996</course>
   <speed>0.735656</speed>
   <name>WP0180</name>
@@ -1724,7 +1724,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496306651" lon="-75.734371640">
   <ele>98.800000</ele>
-<time>2005-06-12T14:56:27Z</time>
+<time>2005-06-12T14:56:27.815Z</time>
   <course>185.270004</course>
   <speed>0.483578</speed>
   <name>WP0181</name>
@@ -1734,7 +1734,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.496194984" lon="-75.734224974">
   <ele>97.900000</ele>
-<time>2005-06-12T14:57:10Z</time>
+<time>2005-06-12T14:57:10.812Z</time>
   <course>166.690002</course>
   <speed>6.152756</speed>
   <name>WP0182</name>
@@ -1744,7 +1744,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.495998318" lon="-75.734101640">
   <ele>97.600000</ele>
-<time>2005-06-12T14:57:13Z</time>
+<time>2005-06-12T14:57:13.812Z</time>
   <course>166.690002</course>
   <speed>6.152756</speed>
   <name>WP0183</name>
@@ -1752,14 +1752,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.494281651" lon="-75.733509974">
   <ele>97.300000</ele>
-<time>2005-06-12T14:57:44Z</time>
+<time>2005-06-12T14:57:44.810Z</time>
   <course>166.690002</course>
   <speed>6.152756</speed>
   <name>WP0184</name>
 </trkpt>
 <trkpt lat="45.491526651" lon="-75.730496640">
   <ele>97.500000</ele>
-<time>2005-06-12T14:58:20Z</time>
+<time>2005-06-12T14:58:20.807Z</time>
   <course>131.520004</course>
   <speed>24.652178</speed>
   <name>WP0185</name>
@@ -1767,7 +1767,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490809984" lon="-75.728584974">
   <ele>97.700000</ele>
-<time>2005-06-12T14:58:21Z</time>
+<time>2005-06-12T14:58:21.807Z</time>
   <course>135.419998</course>
   <speed>23.268322</speed>
   <name>WP0186</name>
@@ -1775,7 +1775,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489388318" lon="-75.725018307">
   <ele>98.100000</ele>
-<time>2005-06-12T14:58:24Z</time>
+<time>2005-06-12T14:58:24.807Z</time>
   <course>144.899994</course>
   <speed>21.025345</speed>
   <name>WP0187</name>
@@ -1783,7 +1783,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488314984" lon="-75.722894974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:58:28Z</time>
+<time>2005-06-12T14:58:28.807Z</time>
   <course>147.210007</course>
   <speed>20.654945</speed>
   <name>WP0188</name>
@@ -1791,14 +1791,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.487204984" lon="-75.721489974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:58:34Z</time>
+<time>2005-06-12T14:58:34.807Z</time>
   <course>147.210007</course>
   <speed>20.654945</speed>
   <name>WP0189</name>
 </trkpt>
 <trkpt lat="45.487416651" lon="-75.720791640">
   <ele>97.900000</ele>
-<time>2005-06-12T14:58:42Z</time>
+<time>2005-06-12T14:58:42.806Z</time>
   <course>160.369995</course>
   <speed>15.068078</speed>
   <name>WP0190</name>
@@ -1806,7 +1806,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488398318" lon="-75.721109974">
   <ele>97.800000</ele>
-<time>2005-06-12T14:58:43Z</time>
+<time>2005-06-12T14:58:43.806Z</time>
   <course>182.169998</course>
   <speed>9.877334</speed>
   <name>WP0191</name>
@@ -1814,7 +1814,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490408318" lon="-75.722254974">
   <ele>101.300000</ele>
-<time>2005-06-12T14:58:46Z</time>
+<time>2005-06-12T14:58:46.806Z</time>
   <course>174.380005</course>
   <speed>7.963600</speed>
   <name>WP0192</name>
@@ -1822,7 +1822,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491743318" lon="-75.723359974">
   <ele>105.300000</ele>
-<time>2005-06-12T14:58:52Z</time>
+<time>2005-06-12T14:58:52.805Z</time>
   <course>179.320007</course>
   <speed>8.323711</speed>
   <name>WP0193</name>
@@ -1832,7 +1832,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491659984" lon="-75.723431640">
   <ele>105.600000</ele>
-<time>2005-06-12T14:58:54Z</time>
+<time>2005-06-12T14:58:54.805Z</time>
   <course>183.029999</course>
   <speed>8.267122</speed>
   <name>WP0194</name>
@@ -1840,7 +1840,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491213318" lon="-75.723554974">
   <ele>105.700000</ele>
-<time>2005-06-12T14:59:01Z</time>
+<time>2005-06-12T14:59:01.805Z</time>
   <course>183.029999</course>
   <speed>8.267122</speed>
   <name>WP0195</name>
@@ -1848,7 +1848,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490278318" lon="-75.723608307">
   <ele>104.700000</ele>
-<time>2005-06-12T14:59:15Z</time>
+<time>2005-06-12T14:59:15.804Z</time>
   <course>126.190002</course>
   <speed>4.876933</speed>
   <name>WP0196</name>
@@ -1856,7 +1856,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490369984" lon="-75.723388307">
   <ele>103.600000</ele>
-<time>2005-06-12T14:59:17Z</time>
+<time>2005-06-12T14:59:17.804Z</time>
   <course>83.410004</course>
   <speed>14.347856</speed>
   <name>WP0197</name>
@@ -1864,7 +1864,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490526651" lon="-75.721809974">
   <ele>101.300000</ele>
-<time>2005-06-12T14:59:24Z</time>
+<time>2005-06-12T14:59:24.803Z</time>
   <course>84.290001</course>
   <speed>13.828267</speed>
   <name>WP0198</name>
@@ -1872,7 +1872,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490071651" lon="-75.720394974">
   <ele>99.900000</ele>
-<time>2005-06-12T14:59:29Z</time>
+<time>2005-06-12T14:59:29.803Z</time>
   <course>109.540001</course>
   <speed>15.947778</speed>
   <name>WP0199</name>
@@ -1882,7 +1882,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488781651" lon="-75.717853307">
   <ele>98.100000</ele>
-<time>2005-06-12T14:59:40Z</time>
+<time>2005-06-12T14:59:40.802Z</time>
   <course>115.199997</course>
   <speed>14.759411</speed>
   <name>WP0200</name>
@@ -1890,7 +1890,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488024984" lon="-75.715301640">
   <ele>97.900000</ele>
-<time>2005-06-12T14:59:54Z</time>
+<time>2005-06-12T14:59:54.801Z</time>
   <course>105.970001</course>
   <speed>16.909788</speed>
   <name>WP0201</name>
@@ -1898,7 +1898,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.487381651" lon="-75.712531640">
   <ele>97.700000</ele>
-<time>2005-06-12T15:00:08Z</time>
+<time>2005-06-12T15:00:08.800Z</time>
   <course>105.970001</course>
   <speed>16.909788</speed>
   <name>WP0202</name>
@@ -1906,7 +1906,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.487396651" lon="-75.711828307">
   <ele>97.700000</ele>
-<time>2005-06-12T15:00:12Z</time>
+<time>2005-06-12T15:00:12.800Z</time>
   <course>87.070000</course>
   <speed>14.203811</speed>
   <name>WP0203</name>
@@ -1914,7 +1914,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.487534984" lon="-75.711744974">
   <ele>97.700000</ele>
-<time>2005-06-12T15:00:13Z</time>
+<time>2005-06-12T15:00:13.800Z</time>
   <course>85.029999</course>
   <speed>14.121500</speed>
   <name>WP0204</name>
@@ -1922,7 +1922,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.487728318" lon="-75.711471640">
   <ele>97.500000</ele>
-<time>2005-06-12T15:00:15Z</time>
+<time>2005-06-12T15:00:15.800Z</time>
   <course>84.540001</course>
   <speed>18.633179</speed>
   <name>WP0205</name>
@@ -1930,7 +1930,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.487859984" lon="-75.710994974">
   <ele>97.300000</ele>
-<time>2005-06-12T15:00:17Z</time>
+<time>2005-06-12T15:00:17.800Z</time>
   <course>84.480003</course>
   <speed>19.055021</speed>
   <name>WP0206</name>
@@ -1938,7 +1938,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488128318" lon="-75.708784974">
   <ele>97.100000</ele>
-<time>2005-06-12T15:00:26Z</time>
+<time>2005-06-12T15:00:26.799Z</time>
   <course>84.480003</course>
   <speed>19.055021</speed>
   <name>WP0207</name>
@@ -1946,7 +1946,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488351651" lon="-75.705628307">
   <ele>97.000000</ele>
-<time>2005-06-12T15:00:39Z</time>
+<time>2005-06-12T15:00:39.798Z</time>
   <course>84.480003</course>
   <speed>19.055021</speed>
   <name>WP0208</name>
@@ -1954,7 +1954,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.488748318" lon="-75.704488307">
   <ele>97.100000</ele>
-<time>2005-06-12T15:00:43Z</time>
+<time>2005-06-12T15:00:43.798Z</time>
   <course>86.349998</course>
   <speed>7.526322</speed>
   <name>WP0209</name>
@@ -1964,7 +1964,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489294984" lon="-75.703023307">
   <ele>97.200000</ele>
-<time>2005-06-12T15:00:52Z</time>
+<time>2005-06-12T15:00:52.798Z</time>
   <course>103.959999</course>
   <speed>0.164622</speed>
   <name>WP0210</name>
@@ -1974,7 +1974,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489278318" lon="-75.703171640">
   <ele>97.100000</ele>
-<time>2005-06-12T15:00:56Z</time>
+<time>2005-06-12T15:00:56.797Z</time>
   <course>198.320007</course>
   <speed>0.174911</speed>
   <name>WP0211</name>
@@ -1984,7 +1984,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489263318" lon="-75.703306640">
   <ele>96.900000</ele>
-<time>2005-06-12T15:01:14Z</time>
+<time>2005-06-12T15:01:14.796Z</time>
   <course>2.360000</course>
   <speed>0.920856</speed>
   <name>WP0212</name>
@@ -1992,7 +1992,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489364984" lon="-75.702803307">
   <ele>96.900000</ele>
-<time>2005-06-12T15:01:37Z</time>
+<time>2005-06-12T15:01:37.795Z</time>
   <course>81.510002</course>
   <speed>14.769700</speed>
   <name>WP0213</name>
@@ -2000,14 +2000,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489553318" lon="-75.700098307">
   <ele>97.300000</ele>
-<time>2005-06-12T15:01:45Z</time>
+<time>2005-06-12T15:01:45.794Z</time>
   <course>94.290001</course>
   <speed>4.218444</speed>
   <name>WP0214</name>
 </trkpt>
 <trkpt lat="45.489698318" lon="-75.698621640">
   <ele>97.200000</ele>
-<time>2005-06-12T15:01:59Z</time>
+<time>2005-06-12T15:01:59.793Z</time>
   <course>90.029999</course>
   <speed>1.450733</speed>
   <name>WP0215</name>
@@ -2017,7 +2017,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489766651" lon="-75.698538307">
   <ele>97.200000</ele>
-<time>2005-06-12T15:02:04Z</time>
+<time>2005-06-12T15:02:04.793Z</time>
   <course>91.970001</course>
   <speed>1.430156</speed>
   <name>WP0216</name>
@@ -2025,7 +2025,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489761651" lon="-75.698398307">
   <ele>97.100000</ele>
-<time>2005-06-12T15:02:12Z</time>
+<time>2005-06-12T15:02:12.792Z</time>
   <course>93.570000</course>
   <speed>15.705989</speed>
   <name>WP0217</name>
@@ -2033,14 +2033,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489583318" lon="-75.695093307">
   <ele>97.400000</ele>
-<time>2005-06-12T15:02:28Z</time>
+<time>2005-06-12T15:02:28.791Z</time>
   <course>93.570000</course>
   <speed>15.705989</speed>
   <name>WP0218</name>
 </trkpt>
 <trkpt lat="45.489726651" lon="-75.693488307">
   <ele>97.500000</ele>
-<time>2005-06-12T15:02:36Z</time>
+<time>2005-06-12T15:02:36.791Z</time>
   <course>76.129997</course>
   <speed>14.399300</speed>
   <name>WP0219</name>
@@ -2048,7 +2048,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489909984" lon="-75.693386640">
   <ele>97.500000</ele>
-<time>2005-06-12T15:02:37Z</time>
+<time>2005-06-12T15:02:37.791Z</time>
   <course>75.209999</course>
   <speed>14.574211</speed>
   <name>WP0220</name>
@@ -2056,7 +2056,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490408318" lon="-75.692841640">
   <ele>97.500000</ele>
-<time>2005-06-12T15:02:41Z</time>
+<time>2005-06-12T15:02:41.791Z</time>
   <course>75.209999</course>
   <speed>14.574211</speed>
   <name>WP0221</name>
@@ -2064,7 +2064,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490608318" lon="-75.692348307">
   <ele>97.400000</ele>
-<time>2005-06-12T15:02:44Z</time>
+<time>2005-06-12T15:02:44.790Z</time>
   <course>75.209999</course>
   <speed>14.574211</speed>
   <name>WP0222</name>
@@ -2072,14 +2072,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491079984" lon="-75.690218307">
   <ele>97.400000</ele>
-<time>2005-06-12T15:02:56Z</time>
+<time>2005-06-12T15:02:56.790Z</time>
   <course>90.370003</course>
   <speed>13.159489</speed>
   <name>WP0223</name>
 </trkpt>
 <trkpt lat="45.491288318" lon="-75.688778307">
   <ele>97.300000</ele>
-<time>2005-06-12T15:03:04Z</time>
+<time>2005-06-12T15:03:04.789Z</time>
   <course>111.029999</course>
   <speed>13.776822</speed>
   <name>WP0224</name>
@@ -2087,7 +2087,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.491183318" lon="-75.688611640">
   <ele>97.300000</ele>
-<time>2005-06-12T15:03:05Z</time>
+<time>2005-06-12T15:03:05.789Z</time>
   <course>126.019997</course>
   <speed>15.505356</speed>
   <name>WP0225</name>
@@ -2095,7 +2095,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490993318" lon="-75.688663307">
   <ele>99.000000</ele>
-<time>2005-06-12T15:03:06Z</time>
+<time>2005-06-12T15:03:06.789Z</time>
   <course>171.699997</course>
   <speed>10.607844</speed>
   <name>WP0226</name>
@@ -2105,7 +2105,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489688318" lon="-75.688748307">
   <ele>99.300000</ele>
-<time>2005-06-12T15:03:16Z</time>
+<time>2005-06-12T15:03:16.788Z</time>
   <course>154.520004</course>
   <speed>6.543733</speed>
   <name>WP0227</name>
@@ -2113,7 +2113,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489516651" lon="-75.688719974">
   <ele>99.200000</ele>
-<time>2005-06-12T15:03:20Z</time>
+<time>2005-06-12T15:03:20.788Z</time>
   <course>159.869995</course>
   <speed>0.133756</speed>
   <name>WP0228</name>
@@ -2123,7 +2123,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489606651" lon="-75.688778307">
   <ele>99.000000</ele>
-<time>2005-06-12T15:03:26Z</time>
+<time>2005-06-12T15:03:26.788Z</time>
   <course>169.960007</course>
   <speed>0.154333</speed>
   <name>WP0229</name>
@@ -2133,7 +2133,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489716651" lon="-75.688851640">
   <ele>98.600000</ele>
-<time>2005-06-12T15:03:53Z</time>
+<time>2005-06-12T15:03:53.786Z</time>
   <course>167.100006</course>
   <speed>1.152356</speed>
   <name>WP0230</name>
@@ -2143,7 +2143,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489636651" lon="-75.688773307">
   <ele>98.300000</ele>
-<time>2005-06-12T15:04:12Z</time>
+<time>2005-06-12T15:04:12.785Z</time>
   <course>318.260010</course>
   <speed>0.864267</speed>
   <name>WP0231</name>
@@ -2151,7 +2151,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489688318" lon="-75.688884974">
   <ele>98.000000</ele>
-<time>2005-06-12T15:04:34Z</time>
+<time>2005-06-12T15:04:34.783Z</time>
   <course>76.680000</course>
   <speed>1.646222</speed>
   <name>WP0232</name>
@@ -2159,7 +2159,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489699984" lon="-75.688648307">
   <ele>98.200000</ele>
-<time>2005-06-12T15:04:37Z</time>
+<time>2005-06-12T15:04:37.783Z</time>
   <course>47.889999</course>
   <speed>3.251289</speed>
   <name>WP0233</name>
@@ -2167,7 +2167,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489858318" lon="-75.688149974">
   <ele>98.400000</ele>
-<time>2005-06-12T15:04:43Z</time>
+<time>2005-06-12T15:04:43.783Z</time>
   <course>47.889999</course>
   <speed>3.251289</speed>
   <name>WP0234</name>
@@ -2175,7 +2175,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489979984" lon="-75.687781640">
   <ele>98.400000</ele>
-<time>2005-06-12T15:04:51Z</time>
+<time>2005-06-12T15:04:51.782Z</time>
   <course>240.000000</course>
   <speed>0.123467</speed>
   <name>WP0235</name>
@@ -2185,7 +2185,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.489979984" lon="-75.687646640">
   <ele>98.100000</ele>
-<time>2005-06-12T15:05:11Z</time>
+<time>2005-06-12T15:05:11.781Z</time>
   <course>159.000000</course>
   <speed>0.128611</speed>
   <name>WP0236</name>
@@ -2193,7 +2193,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </trkpt>
 <trkpt lat="45.490004984" lon="-75.684934974">
   <ele>97.400000</ele>
-<time>2005-06-12T15:05:30Z</time>
+<time>2005-06-12T15:05:30.780Z</time>
   <course>247.240005</course>
   <speed>0.334389</speed>
   <name>WP0237</name>
index f9995b15d26ffdcbb667b31fe64d352751c03b6f..c7ba05f7c7a82b9a962c7719d00688212eeb7577 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="42.401051000" minlon ="-71.126602000" maxlat="42.468655000" maxlon="-71.102973000" />
+<bounds minlat="42.401051000" minlon="-71.126602000" maxlat="42.468655000" maxlon="-71.102973000"/>
 <rte>
   <rtept lat="42.438878000" lon="-71.119277000">
     <ele>44.586548</ele>
index 7e01e95326a2b8cd8ce39786da6fcb94838bc327..f76d4055b3437b7f44ad9de71a863130fa45fdad 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="42.430950000" minlon ="-71.122845000" maxlat="42.467110000" maxlon="-71.105116000" />
+<bounds minlat="42.430950000" minlon="-71.122845000" maxlat="42.467110000" maxlon="-71.105116000"/>
 <wpt lat="42.430950000" lon="-71.107628000">
   <ele>23.469600</ele>
 <time>2001-06-02T00:18:15Z</time>
index 08f4ffedf2c53da11b3f0da78ae93fcad7c40520..09e2cf33b5b402e070cf9da1fb68f8c6fd722a58 100644 (file)
@@ -6,7 +6,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="35.972030000" minlon ="-87.134700000" maxlat="36.112180000" maxlon="-86.620120000" />
+<bounds minlat="35.972030000" minlon="-87.134700000" maxlat="36.112180000" maxlon="-86.620120000"/>
 <wpt lat="35.972030000" lon="-87.134700000">
   <name>GCEBB</name>
   <cmt>Mountain Bike Heaven by susy1313</cmt>
index e2035e65d4b6a667df1702fb36e443164d01f755..72a6da92bfcd166c8dae3552f9ca6e28328bebb4 100644 (file)
@@ -6,10 +6,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
-<bounds minlat="45.458204984" minlon ="-75.770526640" maxlat="45.497519984" maxlon="-75.684934974" />
+<bounds minlat="45.458204984" minlon="-75.770526640" maxlat="45.497519984" maxlon="-75.684934974"/>
 <wpt lat="45.460366651" lon="-75.767939974">
   <ele>33.700000</ele>
-<time>2005-05-09T19:02:01Z</time>
+<time>2005-05-09T19:02:01.517Z</time>
   <name>WP0001</name>
   <cmt>WP0001</cmt>
   <desc>WP0001</desc>
@@ -19,7 +19,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.460339984" lon="-75.767591640">
   <ele>33.700000</ele>
-<time>2005-05-09T19:02:03Z</time>
+<time>2005-05-09T19:02:03.517Z</time>
   <name>WP0002</name>
   <cmt>WP0002</cmt>
   <desc>WP0002</desc>
@@ -29,7 +29,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458376651" lon="-75.768483307">
   <ele>105.400000</ele>
-<time>2005-05-09T20:09:13Z</time>
+<time>2005-05-09T20:09:13.594Z</time>
   <name>WP0003</name>
   <cmt>WP0003</cmt>
   <desc>WP0003</desc>
@@ -39,7 +39,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458293318" lon="-75.768566640">
   <ele>104.600000</ele>
-<time>2005-05-09T20:09:23Z</time>
+<time>2005-05-09T20:09:23.593Z</time>
   <name>WP0004</name>
   <cmt>WP0004</cmt>
   <desc>WP0004</desc>
@@ -49,7 +49,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458298318" lon="-75.768701640">
   <ele>102.500000</ele>
-<time>2005-05-09T20:09:44Z</time>
+<time>2005-05-09T20:09:44.592Z</time>
   <name>WP0005</name>
   <cmt>WP0005</cmt>
   <desc>WP0005</desc>
@@ -59,7 +59,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458266651" lon="-75.769021640">
   <ele>108.900000</ele>
-<time>2005-05-09T20:10:04Z</time>
+<time>2005-05-09T20:10:04.590Z</time>
   <name>WP0006</name>
   <cmt>WP0006</cmt>
   <desc>WP0006</desc>
@@ -69,7 +69,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458204984" lon="-75.770038307">
   <ele>108.400000</ele>
-<time>2005-05-09T20:11:22Z</time>
+<time>2005-05-09T20:11:22.585Z</time>
   <name>WP0007</name>
   <cmt>WP0007</cmt>
   <desc>WP0007</desc>
@@ -79,7 +79,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458274984" lon="-75.770526640">
   <ele>110.600000</ele>
-<time>2005-05-09T20:11:50Z</time>
+<time>2005-05-09T20:11:50.583Z</time>
   <name>WP0008</name>
   <cmt>WP0008</cmt>
   <desc>WP0008</desc>
@@ -89,7 +89,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.458353318" lon="-75.770481640">
   <ele>106.200000</ele>
-<time>2005-05-09T20:14:00Z</time>
+<time>2005-05-09T20:14:00.575Z</time>
   <name>WP0009</name>
   <cmt>WP0009</cmt>
   <desc>WP0009</desc>
@@ -99,7 +99,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492471651" lon="-75.717699974">
   <ele>34.100000</ele>
-<time>2005-05-09T21:36:00Z</time>
+<time>2005-05-09T21:36:00.758Z</time>
   <name>WP0010</name>
   <cmt>WP0010</cmt>
   <desc>WP0010</desc>
@@ -109,7 +109,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492506651" lon="-75.717636640">
   <ele>-22.300000</ele>
-<time>2005-06-03T21:36:06Z</time>
+<time>2005-06-03T21:36:06.757Z</time>
   <name>WP0011</name>
   <cmt>WP0011</cmt>
   <desc>WP0011</desc>
@@ -119,7 +119,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492283318" lon="-75.717694974">
   <ele>-34.800000</ele>
-<time>2005-06-03T21:36:08Z</time>
+<time>2005-06-03T21:36:08.757Z</time>
   <name>WP0012</name>
   <cmt>WP0012</cmt>
   <desc>WP0012</desc>
@@ -129,7 +129,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492396651" lon="-75.717684974">
   <ele>-28.700000</ele>
-<time>2005-06-03T21:36:09Z</time>
+<time>2005-06-03T21:36:09.757Z</time>
   <name>WP0013</name>
   <cmt>WP0013</cmt>
   <desc>WP0013</desc>
@@ -139,7 +139,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492381651" lon="-75.717586640">
   <ele>-21.000000</ele>
-<time>2005-06-03T21:36:17Z</time>
+<time>2005-06-03T21:36:17.757Z</time>
   <name>WP0014</name>
   <cmt>WP0014</cmt>
   <desc>WP0014</desc>
@@ -149,7 +149,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492294984" lon="-75.717593307">
   <ele>-25.300000</ele>
-<time>2005-06-03T21:36:31Z</time>
+<time>2005-06-03T21:36:31.756Z</time>
   <name>WP0015</name>
   <cmt>WP0015</cmt>
   <desc>WP0015</desc>
@@ -157,7 +157,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491944984" lon="-75.717474974">
   <ele>43.400000</ele>
-<time>2005-06-03T21:36:45Z</time>
+<time>2005-06-03T21:36:45.755Z</time>
   <name>WP0016</name>
   <cmt>WP0016</cmt>
   <desc>WP0016</desc>
@@ -167,7 +167,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491938318" lon="-75.717353307">
   <ele>39.300000</ele>
-<time>2005-06-03T21:36:51Z</time>
+<time>2005-06-03T21:36:51.754Z</time>
   <name>WP0017</name>
   <cmt>WP0017</cmt>
   <desc>WP0017</desc>
@@ -177,7 +177,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491969984" lon="-75.717238307">
   <ele>48.300000</ele>
-<time>2005-06-03T21:36:58Z</time>
+<time>2005-06-03T21:36:58.754Z</time>
   <name>WP0018</name>
   <cmt>WP0018</cmt>
   <desc>WP0018</desc>
@@ -187,7 +187,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491994984" lon="-75.717094974">
   <ele>44.500000</ele>
-<time>2005-06-03T21:37:07Z</time>
+<time>2005-06-03T21:37:07.753Z</time>
   <name>WP0019</name>
   <cmt>WP0019</cmt>
   <desc>WP0019</desc>
@@ -197,7 +197,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491996651" lon="-75.716914974">
   <ele>39.900000</ele>
-<time>2005-06-03T21:37:18Z</time>
+<time>2005-06-03T21:37:18.753Z</time>
   <name>WP0020</name>
   <cmt>WP0020</cmt>
   <desc>WP0020</desc>
@@ -207,7 +207,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492019984" lon="-75.716781640">
   <ele>23.600000</ele>
-<time>2005-06-03T21:37:26Z</time>
+<time>2005-06-03T21:37:26.752Z</time>
   <name>WP0021</name>
   <cmt>WP0021</cmt>
   <desc>WP0021</desc>
@@ -217,7 +217,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492071651" lon="-75.716738307">
   <ele>46.700000</ele>
-<time>2005-06-03T21:37:46Z</time>
+<time>2005-06-03T21:37:46.751Z</time>
   <name>WP0022</name>
   <cmt>WP0022</cmt>
   <desc>WP0022</desc>
@@ -227,7 +227,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492071651" lon="-75.716736640">
   <ele>61.300000</ele>
-<time>2005-06-03T21:37:52Z</time>
+<time>2005-06-03T21:37:52.750Z</time>
   <name>WP0023</name>
   <cmt>WP0023</cmt>
   <desc>WP0023</desc>
@@ -237,7 +237,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492096651" lon="-75.716736640">
   <ele>74.600000</ele>
-<time>2005-06-03T21:38:16Z</time>
+<time>2005-06-03T21:38:16.749Z</time>
   <name>WP0024</name>
   <cmt>WP0024</cmt>
   <desc>WP0024</desc>
@@ -247,7 +247,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492099984" lon="-75.716729974">
   <ele>63.600000</ele>
-<time>2005-06-03T21:38:50Z</time>
+<time>2005-06-03T21:38:50.747Z</time>
   <name>WP0025</name>
   <cmt>WP0025</cmt>
   <desc>WP0025</desc>
@@ -257,7 +257,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492721651" lon="-75.718441640">
   <ele>83.600000</ele>
-<time>2005-06-03T21:55:06Z</time>
+<time>2005-06-03T21:55:06.472Z</time>
   <name>WP0026</name>
   <cmt>WP0026</cmt>
   <desc>WP0026</desc>
@@ -267,7 +267,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492656651" lon="-75.718409974">
   <ele>76.200000</ele>
-<time>2005-06-03T21:55:14Z</time>
+<time>2005-06-03T21:55:14.472Z</time>
   <name>WP0027</name>
   <cmt>WP0027</cmt>
   <desc>WP0027</desc>
@@ -277,7 +277,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492591651" lon="-75.718313307">
   <ele>76.300000</ele>
-<time>2005-06-03T21:57:31Z</time>
+<time>2005-06-03T21:57:31.463Z</time>
   <name>WP0028</name>
   <cmt>WP0028</cmt>
   <desc>WP0028</desc>
@@ -287,7 +287,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492568318" lon="-75.718309974">
   <ele>59.800000</ele>
-<time>2005-06-03T21:57:54Z</time>
+<time>2005-06-03T21:57:54.461Z</time>
   <name>WP0029</name>
   <cmt>WP0029</cmt>
   <desc>WP0029</desc>
@@ -297,7 +297,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492314984" lon="-75.718339974">
   <ele>34.300000</ele>
-<time>2005-06-04T23:06:26Z</time>
+<time>2005-06-04T23:06:26.359Z</time>
   <name>WP0030</name>
   <cmt>WP0030</cmt>
   <desc>WP0030</desc>
@@ -307,7 +307,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491909984" lon="-75.718324974">
   <ele>34.300000</ele>
-<time>2005-06-04T23:14:32Z</time>
+<time>2005-06-04T23:14:32.327Z</time>
   <name>WP0031</name>
   <cmt>WP0031</cmt>
   <desc>WP0031</desc>
@@ -317,7 +317,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492206651" lon="-75.718414974">
   <ele>34.300000</ele>
-<time>2005-06-04T23:14:43Z</time>
+<time>2005-06-04T23:14:43.327Z</time>
   <name>WP0032</name>
   <cmt>WP0032</cmt>
   <desc>WP0032</desc>
@@ -327,7 +327,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492689984" lon="-75.718359974">
   <ele>70.800000</ele>
-<time>2005-06-04T23:15:39Z</time>
+<time>2005-06-04T23:15:39.323Z</time>
   <name>WP0033</name>
   <cmt>WP0033</cmt>
   <desc>WP0033</desc>
@@ -337,7 +337,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492691651" lon="-75.718408307">
   <ele>61.200000</ele>
-<time>2005-06-04T23:16:38Z</time>
+<time>2005-06-04T23:16:38.319Z</time>
   <name>WP0034</name>
   <cmt>WP0034</cmt>
   <desc>WP0034</desc>
@@ -347,7 +347,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492601651" lon="-75.718438307">
   <ele>62.400000</ele>
-<time>2005-06-04T23:17:21Z</time>
+<time>2005-06-04T23:17:21.316Z</time>
   <name>WP0035</name>
   <cmt>WP0035</cmt>
   <desc>WP0035</desc>
@@ -355,7 +355,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492479984" lon="-75.718403307">
   <ele>54.200000</ele>
-<time>2005-06-04T23:22:58Z</time>
+<time>2005-06-04T23:22:58.294Z</time>
   <name>WP0036</name>
   <cmt>WP0036</cmt>
   <desc>WP0036</desc>
@@ -365,7 +365,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492566651" lon="-75.718339974">
   <ele>57.000000</ele>
-<time>2005-06-04T23:25:52Z</time>
+<time>2005-06-04T23:25:52.283Z</time>
   <name>WP0037</name>
   <cmt>WP0037</cmt>
   <desc>WP0037</desc>
@@ -375,7 +375,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492343318" lon="-75.722331640">
   <ele>0.000000</ele>
-<time>2005-06-04T23:39:14Z</time>
+<time>2005-06-04T23:39:14.663Z</time>
   <name>WP0038</name>
   <cmt>WP0038</cmt>
   <desc>WP0038</desc>
@@ -383,7 +383,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492314984" lon="-75.722923307">
   <ele>57.600000</ele>
-<time>2005-06-04T23:39:18Z</time>
+<time>2005-06-04T23:39:18.662Z</time>
   <name>WP0039</name>
   <cmt>WP0039</cmt>
   <desc>WP0039</desc>
@@ -393,7 +393,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492369984" lon="-75.722586640">
   <ele>74.800000</ele>
-<time>2005-06-04T23:39:19Z</time>
+<time>2005-06-04T23:39:19.662Z</time>
   <name>WP0040</name>
   <cmt>WP0040</cmt>
   <desc>WP0040</desc>
@@ -403,7 +403,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.493596651" lon="-75.728018307">
   <ele>95.100000</ele>
-<time>2005-06-04T23:44:29Z</time>
+<time>2005-06-04T23:44:29.868Z</time>
   <name>WP0041</name>
   <cmt>WP0041</cmt>
   <desc>WP0041</desc>
@@ -413,7 +413,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492388318" lon="-75.731491640">
   <ele>69.100000</ele>
-<time>2005-06-04T23:50:38Z</time>
+<time>2005-06-04T23:50:38.425Z</time>
   <name>WP0042</name>
   <cmt>WP0042</cmt>
   <desc>WP0042</desc>
@@ -423,7 +423,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492379984" lon="-75.731639974">
   <ele>71.300000</ele>
-<time>2005-06-04T23:52:35Z</time>
+<time>2005-06-04T23:52:35.417Z</time>
   <name>WP0043</name>
   <cmt>WP0043</cmt>
   <desc>WP0043</desc>
@@ -433,7 +433,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492419984" lon="-75.731754974">
   <ele>71.300000</ele>
-<time>2005-06-04T23:52:43Z</time>
+<time>2005-06-04T23:52:43.417Z</time>
   <name>WP0044</name>
   <cmt>WP0044</cmt>
   <desc>WP0044</desc>
@@ -443,7 +443,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492678318" lon="-75.732136640">
   <ele>71.300000</ele>
-<time>2005-06-04T23:53:15Z</time>
+<time>2005-06-04T23:53:15.415Z</time>
   <name>WP0045</name>
   <cmt>WP0045</cmt>
   <desc>WP0045</desc>
@@ -453,7 +453,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492764984" lon="-75.732181640">
   <ele>70.700000</ele>
-<time>2005-06-04T23:53:25Z</time>
+<time>2005-06-04T23:53:25.414Z</time>
   <name>WP0046</name>
   <cmt>WP0046</cmt>
   <desc>WP0046</desc>
@@ -463,7 +463,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.493056651" lon="-75.734448307">
   <ele>68.400000</ele>
-<time>2005-06-04T23:56:24Z</time>
+<time>2005-06-04T23:56:24.496Z</time>
   <name>WP0047</name>
   <cmt>WP0047</cmt>
   <desc>WP0047</desc>
@@ -473,7 +473,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.492984984" lon="-75.734376640">
   <ele>72.900000</ele>
-<time>2005-06-04T23:56:54Z</time>
+<time>2005-06-04T23:56:54.494Z</time>
   <name>WP0048</name>
   <cmt>WP0048</cmt>
   <desc>WP0048</desc>
@@ -483,7 +483,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.493048318" lon="-75.734484974">
   <ele>71.400000</ele>
-<time>2005-06-04T23:57:12Z</time>
+<time>2005-06-04T23:57:12.493Z</time>
   <name>WP0049</name>
   <cmt>WP0049</cmt>
   <desc>WP0049</desc>
@@ -493,7 +493,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.493248318" lon="-75.734873307">
   <ele>71.200000</ele>
-<time>2005-06-04T23:57:43Z</time>
+<time>2005-06-04T23:57:43.491Z</time>
   <name>WP0050</name>
   <cmt>WP0050</cmt>
   <desc>WP0050</desc>
@@ -503,7 +503,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.493511651" lon="-75.735343307">
   <ele>71.600000</ele>
-<time>2005-06-04T23:58:26Z</time>
+<time>2005-06-04T23:58:26.488Z</time>
   <name>WP0051</name>
   <cmt>WP0051</cmt>
   <desc>WP0051</desc>
@@ -513,7 +513,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494089984" lon="-75.736121640">
   <ele>71.000000</ele>
-<time>2005-06-04T00:00:00Z</time>
+<time>2005-06-04T00:00:00.482Z</time>
   <name>WP0052</name>
   <cmt>WP0052</cmt>
   <desc>WP0052</desc>
@@ -521,7 +521,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494091651" lon="-75.736254974">
   <ele>72.100000</ele>
-<time>2005-06-05T00:00:11Z</time>
+<time>2005-06-05T00:00:11.482Z</time>
   <name>WP0053</name>
   <cmt>WP0053</cmt>
   <desc>WP0053</desc>
@@ -529,7 +529,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494156651" lon="-75.736351640">
   <ele>72.700000</ele>
-<time>2005-06-05T00:00:20Z</time>
+<time>2005-06-05T00:00:20.481Z</time>
   <name>WP0054</name>
   <cmt>WP0054</cmt>
   <desc>WP0054</desc>
@@ -539,7 +539,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494316651" lon="-75.736706640">
   <ele>72.200000</ele>
-<time>2005-06-05T00:00:48Z</time>
+<time>2005-06-05T00:00:48.479Z</time>
   <name>WP0055</name>
   <cmt>WP0055</cmt>
   <desc>WP0055</desc>
@@ -547,7 +547,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494326651" lon="-75.736839974">
   <ele>72.500000</ele>
-<time>2005-06-05T00:00:59Z</time>
+<time>2005-06-05T00:00:59.478Z</time>
   <name>WP0056</name>
   <cmt>WP0056</cmt>
   <desc>WP0056</desc>
@@ -555,7 +555,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494348318" lon="-75.737104974">
   <ele>73.000000</ele>
-<time>2005-06-05T00:01:09Z</time>
+<time>2005-06-05T00:01:09.478Z</time>
   <name>WP0057</name>
   <cmt>WP0057</cmt>
   <desc>WP0057</desc>
@@ -563,7 +563,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494411651" lon="-75.737268307">
   <ele>73.300000</ele>
-<time>2005-06-05T00:01:44Z</time>
+<time>2005-06-05T00:01:44.475Z</time>
   <name>WP0058</name>
   <cmt>WP0058</cmt>
   <desc>WP0058</desc>
@@ -573,7 +573,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494488318" lon="-75.737228307">
   <ele>78.100000</ele>
-<time>2005-06-05T00:01:58Z</time>
+<time>2005-06-05T00:01:58.474Z</time>
   <name>WP0059</name>
   <cmt>WP0059</cmt>
   <desc>WP0059</desc>
@@ -583,7 +583,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494713318" lon="-75.737163307">
   <ele>77.000000</ele>
-<time>2005-06-05T00:02:16Z</time>
+<time>2005-06-05T00:02:16.473Z</time>
   <name>WP0060</name>
   <cmt>WP0060</cmt>
   <desc>WP0060</desc>
@@ -593,7 +593,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494818318" lon="-75.737188307">
   <ele>75.500000</ele>
-<time>2005-06-05T00:02:25Z</time>
+<time>2005-06-05T00:02:25.473Z</time>
   <name>WP0061</name>
   <cmt>WP0061</cmt>
   <desc>WP0061</desc>
@@ -603,7 +603,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495011651" lon="-75.737183307">
   <ele>71.000000</ele>
-<time>2005-06-05T00:02:42Z</time>
+<time>2005-06-05T00:02:42.472Z</time>
   <name>WP0062</name>
   <cmt>WP0062</cmt>
   <desc>WP0062</desc>
@@ -613,7 +613,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495254984" lon="-75.737171640">
   <ele>75.800000</ele>
-<time>2005-06-05T00:03:21Z</time>
+<time>2005-06-05T00:03:21.469Z</time>
   <name>WP0063</name>
   <cmt>WP0063</cmt>
   <desc>WP0063</desc>
@@ -623,7 +623,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495354984" lon="-75.737114974">
   <ele>72.600000</ele>
-<time>2005-06-05T00:03:31Z</time>
+<time>2005-06-05T00:03:31.468Z</time>
   <name>WP0064</name>
   <cmt>WP0064</cmt>
   <desc>WP0064</desc>
@@ -633,7 +633,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495581651" lon="-75.736874974">
   <ele>70.300000</ele>
-<time>2005-06-05T00:03:53Z</time>
+<time>2005-06-05T00:03:53.467Z</time>
   <name>WP0065</name>
   <cmt>WP0065</cmt>
   <desc>WP0065</desc>
@@ -643,7 +643,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495921651" lon="-75.736509974">
   <ele>74.600000</ele>
-<time>2005-06-05T00:04:31Z</time>
+<time>2005-06-05T00:04:31.464Z</time>
   <name>WP0066</name>
   <cmt>WP0066</cmt>
   <desc>WP0066</desc>
@@ -653,7 +653,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495844984" lon="-75.736588307">
   <ele>76.300000</ele>
-<time>2005-06-05T00:05:05Z</time>
+<time>2005-06-05T00:05:05.462Z</time>
   <name>WP0067</name>
   <cmt>WP0067</cmt>
   <desc>WP0067</desc>
@@ -663,7 +663,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495876651" lon="-75.736471640">
   <ele>72.100000</ele>
-<time>2005-06-05T00:05:45Z</time>
+<time>2005-06-05T00:05:45.459Z</time>
   <name>WP0068</name>
   <cmt>WP0068</cmt>
   <desc>WP0068</desc>
@@ -673,7 +673,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495916651" lon="-75.736536640">
   <ele>80.900000</ele>
-<time>2005-06-05T00:06:19Z</time>
+<time>2005-06-05T00:06:19.457Z</time>
   <name>WP0069</name>
   <cmt>WP0069</cmt>
   <desc>WP0069</desc>
@@ -683,7 +683,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495866651" lon="-75.736521640">
   <ele>89.500000</ele>
-<time>2005-06-05T00:06:25Z</time>
+<time>2005-06-05T00:06:25.457Z</time>
   <name>WP0070</name>
   <cmt>WP0070</cmt>
   <desc>WP0070</desc>
@@ -693,7 +693,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496203318" lon="-75.734848307">
   <ele>102.100000</ele>
-<time>2005-06-05T00:37:53Z</time>
+<time>2005-06-05T00:37:53.913Z</time>
   <name>WP0071</name>
   <cmt>WP0071</cmt>
   <desc>WP0071</desc>
@@ -703,7 +703,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496083318" lon="-75.734841640">
   <ele>102.800000</ele>
-<time>2005-06-11T00:38:21Z</time>
+<time>2005-06-11T00:38:21.912Z</time>
   <name>WP0072</name>
   <cmt>WP0072</cmt>
   <desc>WP0072</desc>
@@ -713,7 +713,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496109984" lon="-75.734754974">
   <ele>94.100000</ele>
-<time>2005-06-11T00:38:55Z</time>
+<time>2005-06-11T00:38:55.909Z</time>
   <name>WP0073</name>
   <cmt>WP0073</cmt>
   <desc>WP0073</desc>
@@ -723,7 +723,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496299984" lon="-75.734379974">
   <ele>93.300000</ele>
-<time>2005-06-11T00:39:44Z</time>
+<time>2005-06-11T00:39:44.906Z</time>
   <name>WP0074</name>
   <cmt>WP0074</cmt>
   <desc>WP0074</desc>
@@ -733,7 +733,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496259984" lon="-75.734368307">
   <ele>83.800000</ele>
-<time>2005-06-11T00:40:44Z</time>
+<time>2005-06-11T00:40:44.902Z</time>
   <name>WP0075</name>
   <cmt>WP0075</cmt>
   <desc>WP0075</desc>
@@ -741,7 +741,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496204984" lon="-75.734474974">
   <ele>85.100000</ele>
-<time>2005-06-11T00:41:04Z</time>
+<time>2005-06-11T00:41:04.901Z</time>
   <name>WP0076</name>
   <cmt>WP0076</cmt>
   <desc>WP0076</desc>
@@ -749,7 +749,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496191651" lon="-75.734614974">
   <ele>85.600000</ele>
-<time>2005-06-11T00:41:11Z</time>
+<time>2005-06-11T00:41:11.900Z</time>
   <name>WP0077</name>
   <cmt>WP0077</cmt>
   <desc>WP0077</desc>
@@ -759,7 +759,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496134984" lon="-75.734768307">
   <ele>85.900000</ele>
-<time>2005-06-11T00:41:19Z</time>
+<time>2005-06-11T00:41:19.900Z</time>
   <name>WP0078</name>
   <cmt>WP0078</cmt>
   <desc>WP0078</desc>
@@ -767,7 +767,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496108318" lon="-75.734911640">
   <ele>85.200000</ele>
-<time>2005-06-11T00:41:27Z</time>
+<time>2005-06-11T00:41:27.899Z</time>
   <name>WP0079</name>
   <cmt>WP0079</cmt>
   <desc>WP0079</desc>
@@ -777,7 +777,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496044984" lon="-75.735079974">
   <ele>87.100000</ele>
-<time>2005-06-11T00:41:43Z</time>
+<time>2005-06-11T00:41:43.898Z</time>
   <name>WP0080</name>
   <cmt>WP0080</cmt>
   <desc>WP0080</desc>
@@ -787,7 +787,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495993318" lon="-75.735166640">
   <ele>82.300000</ele>
-<time>2005-06-11T00:41:51Z</time>
+<time>2005-06-11T00:41:51.898Z</time>
   <name>WP0081</name>
   <cmt>WP0081</cmt>
   <desc>WP0081</desc>
@@ -797,7 +797,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495931651" lon="-75.735276640">
   <ele>78.800000</ele>
-<time>2005-06-11T00:42:00Z</time>
+<time>2005-06-11T00:42:00.897Z</time>
   <name>WP0082</name>
   <cmt>WP0082</cmt>
   <desc>WP0082</desc>
@@ -807,7 +807,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495874984" lon="-75.735439974">
   <ele>75.500000</ele>
-<time>2005-06-11T00:42:14Z</time>
+<time>2005-06-11T00:42:14.896Z</time>
   <name>WP0083</name>
   <cmt>WP0083</cmt>
   <desc>WP0083</desc>
@@ -817,7 +817,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495826651" lon="-75.735561640">
   <ele>74.100000</ele>
-<time>2005-06-11T00:42:25Z</time>
+<time>2005-06-11T00:42:25.895Z</time>
   <name>WP0084</name>
   <cmt>WP0084</cmt>
   <desc>WP0084</desc>
@@ -827,7 +827,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495858318" lon="-75.735689974">
   <ele>72.500000</ele>
-<time>2005-06-11T00:42:50Z</time>
+<time>2005-06-11T00:42:50.894Z</time>
   <name>WP0085</name>
   <cmt>WP0085</cmt>
   <desc>WP0085</desc>
@@ -835,7 +835,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495931651" lon="-75.735779974">
   <ele>74.000000</ele>
-<time>2005-06-11T00:43:01Z</time>
+<time>2005-06-11T00:43:01.893Z</time>
   <name>WP0086</name>
   <cmt>WP0086</cmt>
   <desc>WP0086</desc>
@@ -845,7 +845,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495899984" lon="-75.735658307">
   <ele>74.700000</ele>
-<time>2005-06-11T00:43:09Z</time>
+<time>2005-06-11T00:43:09.893Z</time>
   <name>WP0087</name>
   <cmt>WP0087</cmt>
   <desc>WP0087</desc>
@@ -855,21 +855,21 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495808318" lon="-75.735613307">
   <ele>72.300000</ele>
-<time>2005-06-11T00:43:38Z</time>
+<time>2005-06-11T00:43:38.891Z</time>
   <name>WP0088</name>
   <cmt>WP0088</cmt>
   <desc>WP0088</desc>
 </wpt>
 <wpt lat="45.495711651" lon="-75.735599974">
   <ele>72.200000</ele>
-<time>2005-06-11T00:44:05Z</time>
+<time>2005-06-11T00:44:05.889Z</time>
   <name>WP0089</name>
   <cmt>WP0089</cmt>
   <desc>WP0089</desc>
 </wpt>
 <wpt lat="45.495679984" lon="-75.735724974">
   <ele>73.000000</ele>
-<time>2005-06-11T00:44:11Z</time>
+<time>2005-06-11T00:44:11.888Z</time>
   <name>WP0090</name>
   <cmt>WP0090</cmt>
   <desc>WP0090</desc>
@@ -879,7 +879,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495651651" lon="-75.735859974">
   <ele>74.400000</ele>
-<time>2005-06-11T00:44:23Z</time>
+<time>2005-06-11T00:44:23.888Z</time>
   <name>WP0091</name>
   <cmt>WP0091</cmt>
   <desc>WP0091</desc>
@@ -887,7 +887,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495756651" lon="-75.735824974">
   <ele>81.200000</ele>
-<time>2005-06-11T00:44:43Z</time>
+<time>2005-06-11T00:44:43.886Z</time>
   <name>WP0092</name>
   <cmt>WP0092</cmt>
   <desc>WP0092</desc>
@@ -897,7 +897,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495728318" lon="-75.735801640">
   <ele>70.100000</ele>
-<time>2005-06-11T00:44:47Z</time>
+<time>2005-06-11T00:44:47.886Z</time>
   <name>WP0093</name>
   <cmt>WP0093</cmt>
   <desc>WP0093</desc>
@@ -907,7 +907,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495708318" lon="-75.735911640">
   <ele>64.400000</ele>
-<time>2005-06-11T00:45:02Z</time>
+<time>2005-06-11T00:45:02.885Z</time>
   <name>WP0094</name>
   <cmt>WP0094</cmt>
   <desc>WP0094</desc>
@@ -915,7 +915,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495683318" lon="-75.736064974">
   <ele>64.000000</ele>
-<time>2005-06-11T00:45:35Z</time>
+<time>2005-06-11T00:45:35.883Z</time>
   <name>WP0095</name>
   <cmt>WP0095</cmt>
   <desc>WP0095</desc>
@@ -923,7 +923,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495584984" lon="-75.736138307">
   <ele>64.600000</ele>
-<time>2005-06-11T00:46:07Z</time>
+<time>2005-06-11T00:46:07.881Z</time>
   <name>WP0096</name>
   <cmt>WP0096</cmt>
   <desc>WP0096</desc>
@@ -933,7 +933,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495651651" lon="-75.736043307">
   <ele>67.300000</ele>
-<time>2005-06-11T00:46:36Z</time>
+<time>2005-06-11T00:46:36.879Z</time>
   <name>WP0097</name>
   <cmt>WP0097</cmt>
   <desc>WP0097</desc>
@@ -943,7 +943,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495691651" lon="-75.735939974">
   <ele>71.400000</ele>
-<time>2005-06-11T00:48:44Z</time>
+<time>2005-06-11T00:48:44.870Z</time>
   <name>WP0098</name>
   <cmt>WP0098</cmt>
   <desc>WP0098</desc>
@@ -953,7 +953,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495706651" lon="-75.736066640">
   <ele>71.700000</ele>
-<time>2005-06-11T00:49:14Z</time>
+<time>2005-06-11T00:49:14.868Z</time>
   <name>WP0099</name>
   <cmt>WP0099</cmt>
   <desc>WP0099</desc>
@@ -963,7 +963,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495733318" lon="-75.735924974">
   <ele>72.300000</ele>
-<time>2005-06-11T00:51:19Z</time>
+<time>2005-06-11T00:51:19.860Z</time>
   <name>WP0100</name>
   <cmt>WP0100</cmt>
   <desc>WP0100</desc>
@@ -973,7 +973,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495666651" lon="-75.735996640">
   <ele>81.200000</ele>
-<time>2005-06-11T00:51:31Z</time>
+<time>2005-06-11T00:51:31.859Z</time>
   <name>WP0101</name>
   <cmt>WP0101</cmt>
   <desc>WP0101</desc>
@@ -983,7 +983,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495646651" lon="-75.735903307">
   <ele>74.500000</ele>
-<time>2005-06-11T00:51:43Z</time>
+<time>2005-06-11T00:51:43.858Z</time>
   <name>WP0102</name>
   <cmt>WP0102</cmt>
   <desc>WP0102</desc>
@@ -991,7 +991,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495689984" lon="-75.735704974">
   <ele>74.700000</ele>
-<time>2005-06-11T00:51:53Z</time>
+<time>2005-06-11T00:51:53.858Z</time>
   <name>WP0103</name>
   <cmt>WP0103</cmt>
   <desc>WP0103</desc>
@@ -1001,7 +1001,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495769984" lon="-75.735519974">
   <ele>76.200000</ele>
-<time>2005-06-11T00:52:08Z</time>
+<time>2005-06-11T00:52:08.857Z</time>
   <name>WP0104</name>
   <cmt>WP0104</cmt>
   <desc>WP0104</desc>
@@ -1011,7 +1011,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495858318" lon="-75.735479974">
   <ele>77.900000</ele>
-<time>2005-06-11T00:52:19Z</time>
+<time>2005-06-11T00:52:19.856Z</time>
   <name>WP0105</name>
   <cmt>WP0105</cmt>
   <desc>WP0105</desc>
@@ -1021,7 +1021,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495914984" lon="-75.735378307">
   <ele>78.600000</ele>
-<time>2005-06-11T00:52:27Z</time>
+<time>2005-06-11T00:52:27.856Z</time>
   <name>WP0106</name>
   <cmt>WP0106</cmt>
   <desc>WP0106</desc>
@@ -1031,7 +1031,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495991651" lon="-75.735234974">
   <ele>80.700000</ele>
-<time>2005-06-11T00:52:37Z</time>
+<time>2005-06-11T00:52:37.855Z</time>
   <name>WP0107</name>
   <cmt>WP0107</cmt>
   <desc>WP0107</desc>
@@ -1041,7 +1041,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496076651" lon="-75.735043307">
   <ele>84.400000</ele>
-<time>2005-06-11T00:52:54Z</time>
+<time>2005-06-11T00:52:54.854Z</time>
   <name>WP0108</name>
   <cmt>WP0108</cmt>
   <desc>WP0108</desc>
@@ -1049,7 +1049,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496214984" lon="-75.734634974">
   <ele>92.600000</ele>
-<time>2005-06-11T00:53:33Z</time>
+<time>2005-06-11T00:53:33.851Z</time>
   <name>WP0109</name>
   <cmt>WP0109</cmt>
   <desc>WP0109</desc>
@@ -1059,7 +1059,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496243318" lon="-75.734476640">
   <ele>95.800000</ele>
-<time>2005-06-11T00:53:43Z</time>
+<time>2005-06-11T00:53:43.850Z</time>
   <name>WP0110</name>
   <cmt>WP0110</cmt>
   <desc>WP0110</desc>
@@ -1069,7 +1069,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496326651" lon="-75.734336640">
   <ele>94.700000</ele>
-<time>2005-06-11T00:53:53Z</time>
+<time>2005-06-11T00:53:53.850Z</time>
   <name>WP0111</name>
   <cmt>WP0111</cmt>
   <desc>WP0111</desc>
@@ -1079,7 +1079,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496198318" lon="-75.734216640">
   <ele>59.200000</ele>
-<time>2005-06-11T14:39:26Z</time>
+<time>2005-06-11T14:39:26.882Z</time>
   <name>WP0112</name>
   <cmt>WP0112</cmt>
   <desc>WP0112</desc>
@@ -1089,7 +1089,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496179984" lon="-75.734338307">
   <ele>55.200000</ele>
-<time>2005-06-12T14:39:42Z</time>
+<time>2005-06-12T14:39:42.881Z</time>
   <name>WP0113</name>
   <cmt>WP0113</cmt>
   <desc>WP0113</desc>
@@ -1099,7 +1099,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496081651" lon="-75.734656640">
   <ele>56.100000</ele>
-<time>2005-06-12T14:40:08Z</time>
+<time>2005-06-12T14:40:08.879Z</time>
   <name>WP0114</name>
   <cmt>WP0114</cmt>
   <desc>WP0114</desc>
@@ -1109,7 +1109,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495996651" lon="-75.734781640">
   <ele>54.500000</ele>
-<time>2005-06-12T14:40:16Z</time>
+<time>2005-06-12T14:40:16.878Z</time>
   <name>WP0115</name>
   <cmt>WP0115</cmt>
   <desc>WP0115</desc>
@@ -1119,7 +1119,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495906651" lon="-75.734983307">
   <ele>48.700000</ele>
-<time>2005-06-12T14:40:33Z</time>
+<time>2005-06-12T14:40:33.877Z</time>
   <name>WP0116</name>
   <cmt>WP0116</cmt>
   <desc>WP0116</desc>
@@ -1127,7 +1127,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495801651" lon="-75.735363307">
   <ele>43.700000</ele>
-<time>2005-06-12T14:41:02Z</time>
+<time>2005-06-12T14:41:02.875Z</time>
   <name>WP0117</name>
   <cmt>WP0117</cmt>
   <desc>WP0117</desc>
@@ -1137,7 +1137,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495801651" lon="-75.735514974">
   <ele>45.100000</ele>
-<time>2005-06-12T14:41:16Z</time>
+<time>2005-06-12T14:41:16.874Z</time>
   <name>WP0118</name>
   <cmt>WP0118</cmt>
   <desc>WP0118</desc>
@@ -1145,7 +1145,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495833318" lon="-75.735654974">
   <ele>44.600000</ele>
-<time>2005-06-12T14:41:24Z</time>
+<time>2005-06-12T14:41:24.874Z</time>
   <name>WP0119</name>
   <cmt>WP0119</cmt>
   <desc>WP0119</desc>
@@ -1155,7 +1155,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495914984" lon="-75.735726640">
   <ele>44.100000</ele>
-<time>2005-06-12T14:41:31Z</time>
+<time>2005-06-12T14:41:31.873Z</time>
   <name>WP0120</name>
   <cmt>WP0120</cmt>
   <desc>WP0120</desc>
@@ -1163,7 +1163,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495956651" lon="-75.735839974">
   <ele>43.000000</ele>
-<time>2005-06-12T14:41:40Z</time>
+<time>2005-06-12T14:41:40.873Z</time>
   <name>WP0121</name>
   <cmt>WP0121</cmt>
   <desc>WP0121</desc>
@@ -1171,7 +1171,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496036651" lon="-75.735908307">
   <ele>42.000000</ele>
-<time>2005-06-12T14:41:48Z</time>
+<time>2005-06-12T14:41:48.872Z</time>
   <name>WP0122</name>
   <cmt>WP0122</cmt>
   <desc>WP0122</desc>
@@ -1181,7 +1181,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496151651" lon="-75.735971640">
   <ele>41.400000</ele>
-<time>2005-06-12T14:41:55Z</time>
+<time>2005-06-12T14:41:55.872Z</time>
   <name>WP0123</name>
   <cmt>WP0123</cmt>
   <desc>WP0123</desc>
@@ -1191,7 +1191,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496328318" lon="-75.735998307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:05Z</time>
+<time>2005-06-12T14:42:05.871Z</time>
   <name>WP0124</name>
   <cmt>WP0124</cmt>
   <desc>WP0124</desc>
@@ -1201,7 +1201,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496431651" lon="-75.735963307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:14Z</time>
+<time>2005-06-12T14:42:14.871Z</time>
   <name>WP0125</name>
   <cmt>WP0125</cmt>
   <desc>WP0125</desc>
@@ -1209,7 +1209,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496608318" lon="-75.735874974">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:31Z</time>
+<time>2005-06-12T14:42:31.870Z</time>
   <name>WP0126</name>
   <cmt>WP0126</cmt>
   <desc>WP0126</desc>
@@ -1219,7 +1219,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496763318" lon="-75.735828307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:44Z</time>
+<time>2005-06-12T14:42:44.869Z</time>
   <name>WP0127</name>
   <cmt>WP0127</cmt>
   <desc>WP0127</desc>
@@ -1227,7 +1227,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496854984" lon="-75.735886640">
   <ele>41.600000</ele>
-<time>2005-06-12T14:42:50Z</time>
+<time>2005-06-12T14:42:50.868Z</time>
   <name>WP0128</name>
   <cmt>WP0128</cmt>
   <desc>WP0128</desc>
@@ -1235,7 +1235,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496996651" lon="-75.735931640">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:03Z</time>
+<time>2005-06-12T14:43:03.867Z</time>
   <name>WP0129</name>
   <cmt>WP0129</cmt>
   <desc>WP0129</desc>
@@ -1243,7 +1243,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497081651" lon="-75.735889974">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:06Z</time>
+<time>2005-06-12T14:43:06.867Z</time>
   <name>WP0130</name>
   <cmt>WP0130</cmt>
   <desc>WP0130</desc>
@@ -1251,7 +1251,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497164984" lon="-75.735838307">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:15Z</time>
+<time>2005-06-12T14:43:15.867Z</time>
   <name>WP0131</name>
   <cmt>WP0131</cmt>
   <desc>WP0131</desc>
@@ -1259,7 +1259,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497229984" lon="-75.735719974">
   <ele>41.600000</ele>
-<time>2005-06-12T14:43:24Z</time>
+<time>2005-06-12T14:43:24.866Z</time>
   <name>WP0132</name>
   <cmt>WP0132</cmt>
   <desc>WP0132</desc>
@@ -1269,7 +1269,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497303318" lon="-75.735568307">
   <ele>41.700000</ele>
-<time>2005-06-12T14:43:34Z</time>
+<time>2005-06-12T14:43:34.865Z</time>
   <name>WP0133</name>
   <cmt>WP0133</cmt>
   <desc>WP0133</desc>
@@ -1279,7 +1279,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497301651" lon="-75.735439974">
   <ele>41.700000</ele>
-<time>2005-06-12T14:43:41Z</time>
+<time>2005-06-12T14:43:41.865Z</time>
   <name>WP0134</name>
   <cmt>WP0134</cmt>
   <desc>WP0134</desc>
@@ -1289,7 +1289,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497318318" lon="-75.735193307">
   <ele>41.800000</ele>
-<time>2005-06-12T14:43:54Z</time>
+<time>2005-06-12T14:43:54.864Z</time>
   <name>WP0135</name>
   <cmt>WP0135</cmt>
   <desc>WP0135</desc>
@@ -1297,7 +1297,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497329984" lon="-75.734973307">
   <ele>42.300000</ele>
-<time>2005-06-12T14:44:06Z</time>
+<time>2005-06-12T14:44:06.863Z</time>
   <name>WP0136</name>
   <cmt>WP0136</cmt>
   <desc>WP0136</desc>
@@ -1307,7 +1307,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497464984" lon="-75.733798307">
   <ele>45.200000</ele>
-<time>2005-06-12T14:44:53Z</time>
+<time>2005-06-12T14:44:53.860Z</time>
   <name>WP0137</name>
   <cmt>WP0137</cmt>
   <desc>WP0137</desc>
@@ -1317,7 +1317,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497519984" lon="-75.733038307">
   <ele>46.700000</ele>
-<time>2005-06-12T14:45:30Z</time>
+<time>2005-06-12T14:45:30.858Z</time>
   <name>WP0138</name>
   <cmt>WP0138</cmt>
   <desc>WP0138</desc>
@@ -1327,7 +1327,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497474984" lon="-75.732808307">
   <ele>47.400000</ele>
-<time>2005-06-12T14:45:44Z</time>
+<time>2005-06-12T14:45:44.857Z</time>
   <name>WP0139</name>
   <cmt>WP0139</cmt>
   <desc>WP0139</desc>
@@ -1337,7 +1337,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497466651" lon="-75.732938307">
   <ele>48.300000</ele>
-<time>2005-06-12T14:45:55Z</time>
+<time>2005-06-12T14:45:55.856Z</time>
   <name>WP0140</name>
   <cmt>WP0140</cmt>
   <desc>WP0140</desc>
@@ -1345,14 +1345,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497506651" lon="-75.733146640">
   <ele>49.000000</ele>
-<time>2005-06-12T14:46:07Z</time>
+<time>2005-06-12T14:46:07.855Z</time>
   <name>WP0141</name>
   <cmt>WP0141</cmt>
   <desc>WP0141</desc>
 </wpt>
 <wpt lat="45.497499984" lon="-75.733361640">
   <ele>49.400000</ele>
-<time>2005-06-12T14:46:22Z</time>
+<time>2005-06-12T14:46:22.854Z</time>
   <name>WP0142</name>
   <cmt>WP0142</cmt>
   <desc>WP0142</desc>
@@ -1360,7 +1360,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497463318" lon="-75.733511640">
   <ele>49.900000</ele>
-<time>2005-06-12T14:46:37Z</time>
+<time>2005-06-12T14:46:37.853Z</time>
   <name>WP0143</name>
   <cmt>WP0143</cmt>
   <desc>WP0143</desc>
@@ -1370,7 +1370,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497483318" lon="-75.733636640">
   <ele>49.500000</ele>
-<time>2005-06-12T14:47:06Z</time>
+<time>2005-06-12T14:47:06.852Z</time>
   <name>WP0144</name>
   <cmt>WP0144</cmt>
   <desc>WP0144</desc>
@@ -1380,7 +1380,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497466651" lon="-75.733898307">
   <ele>55.000000</ele>
-<time>2005-06-12T14:47:31Z</time>
+<time>2005-06-12T14:47:31.850Z</time>
   <name>WP0145</name>
   <cmt>WP0145</cmt>
   <desc>WP0145</desc>
@@ -1390,7 +1390,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497471651" lon="-75.734046640">
   <ele>56.600000</ele>
-<time>2005-06-12T14:47:40Z</time>
+<time>2005-06-12T14:47:40.849Z</time>
   <name>WP0146</name>
   <cmt>WP0146</cmt>
   <desc>WP0146</desc>
@@ -1400,7 +1400,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497383318" lon="-75.734076640">
   <ele>56.100000</ele>
-<time>2005-06-12T14:48:17Z</time>
+<time>2005-06-12T14:48:17.847Z</time>
   <name>WP0147</name>
   <cmt>WP0147</cmt>
   <desc>WP0147</desc>
@@ -1410,7 +1410,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497269984" lon="-75.734148307">
   <ele>56.700000</ele>
-<time>2005-06-12T14:48:37Z</time>
+<time>2005-06-12T14:48:37.846Z</time>
   <name>WP0148</name>
   <cmt>WP0148</cmt>
   <desc>WP0148</desc>
@@ -1418,7 +1418,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497241651" lon="-75.734263307">
   <ele>70.600000</ele>
-<time>2005-06-12T14:49:04Z</time>
+<time>2005-06-12T14:49:04.844Z</time>
   <name>WP0149</name>
   <cmt>WP0149</cmt>
   <desc>WP0149</desc>
@@ -1428,7 +1428,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497159984" lon="-75.734243307">
   <ele>75.600000</ele>
-<time>2005-06-12T14:49:14Z</time>
+<time>2005-06-12T14:49:14.843Z</time>
   <name>WP0150</name>
   <cmt>WP0150</cmt>
   <desc>WP0150</desc>
@@ -1438,7 +1438,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497066651" lon="-75.734216640">
   <ele>76.100000</ele>
-<time>2005-06-12T14:49:29Z</time>
+<time>2005-06-12T14:49:29.842Z</time>
   <name>WP0151</name>
   <cmt>WP0151</cmt>
   <desc>WP0151</desc>
@@ -1448,7 +1448,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496981651" lon="-75.734176640">
   <ele>77.400000</ele>
-<time>2005-06-12T14:49:49Z</time>
+<time>2005-06-12T14:49:49.841Z</time>
   <name>WP0152</name>
   <cmt>WP0152</cmt>
   <desc>WP0152</desc>
@@ -1458,7 +1458,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497001651" lon="-75.734269974">
   <ele>84.500000</ele>
-<time>2005-06-12T14:50:10Z</time>
+<time>2005-06-12T14:50:10.839Z</time>
   <name>WP0153</name>
   <cmt>WP0153</cmt>
   <desc>WP0153</desc>
@@ -1466,7 +1466,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497056651" lon="-75.734181640">
   <ele>90.200000</ele>
-<time>2005-06-12T14:50:25Z</time>
+<time>2005-06-12T14:50:25.839Z</time>
   <name>WP0154</name>
   <cmt>WP0154</cmt>
   <desc>WP0154</desc>
@@ -1474,7 +1474,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497098318" lon="-75.734301640">
   <ele>93.200000</ele>
-<time>2005-06-12T14:50:45Z</time>
+<time>2005-06-12T14:50:45.837Z</time>
   <name>WP0155</name>
   <cmt>WP0155</cmt>
   <desc>WP0155</desc>
@@ -1482,7 +1482,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497131651" lon="-75.734461640">
   <ele>94.400000</ele>
-<time>2005-06-12T14:50:55Z</time>
+<time>2005-06-12T14:50:55.837Z</time>
   <name>WP0156</name>
   <cmt>WP0156</cmt>
   <desc>WP0156</desc>
@@ -1492,7 +1492,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497083318" lon="-75.734576640">
   <ele>95.400000</ele>
-<time>2005-06-12T14:51:04Z</time>
+<time>2005-06-12T14:51:04.836Z</time>
   <name>WP0157</name>
   <cmt>WP0157</cmt>
   <desc>WP0157</desc>
@@ -1500,7 +1500,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497011651" lon="-75.734718307">
   <ele>96.500000</ele>
-<time>2005-06-12T14:51:16Z</time>
+<time>2005-06-12T14:51:16.835Z</time>
   <name>WP0158</name>
   <cmt>WP0158</cmt>
   <desc>WP0158</desc>
@@ -1510,7 +1510,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.497041651" lon="-75.734841640">
   <ele>96.300000</ele>
-<time>2005-06-12T14:51:38Z</time>
+<time>2005-06-12T14:51:38.834Z</time>
   <name>WP0159</name>
   <cmt>WP0159</cmt>
   <desc>WP0159</desc>
@@ -1518,7 +1518,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496978318" lon="-75.734936640">
   <ele>97.000000</ele>
-<time>2005-06-12T14:51:47Z</time>
+<time>2005-06-12T14:51:47.833Z</time>
   <name>WP0160</name>
   <cmt>WP0160</cmt>
   <desc>WP0160</desc>
@@ -1528,7 +1528,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496954984" lon="-75.735069974">
   <ele>96.900000</ele>
-<time>2005-06-12T14:51:57Z</time>
+<time>2005-06-12T14:51:57.832Z</time>
   <name>WP0161</name>
   <cmt>WP0161</cmt>
   <desc>WP0161</desc>
@@ -1536,7 +1536,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496956651" lon="-75.735244974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:52:10Z</time>
+<time>2005-06-12T14:52:10.832Z</time>
   <name>WP0162</name>
   <cmt>WP0162</cmt>
   <desc>WP0162</desc>
@@ -1546,7 +1546,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496894984" lon="-75.735343307">
   <ele>98.600000</ele>
-<time>2005-06-12T14:52:24Z</time>
+<time>2005-06-12T14:52:24.831Z</time>
   <name>WP0163</name>
   <cmt>WP0163</cmt>
   <desc>WP0163</desc>
@@ -1556,7 +1556,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496828318" lon="-75.735484974">
   <ele>98.400000</ele>
-<time>2005-06-12T14:52:38Z</time>
+<time>2005-06-12T14:52:38.830Z</time>
   <name>WP0164</name>
   <cmt>WP0164</cmt>
   <desc>WP0164</desc>
@@ -1564,7 +1564,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496764984" lon="-75.735634974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:52:51Z</time>
+<time>2005-06-12T14:52:51.829Z</time>
   <name>WP0165</name>
   <cmt>WP0165</cmt>
   <desc>WP0165</desc>
@@ -1574,7 +1574,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496698318" lon="-75.735818307">
   <ele>97.000000</ele>
-<time>2005-06-12T14:53:04Z</time>
+<time>2005-06-12T14:53:04.828Z</time>
   <name>WP0166</name>
   <cmt>WP0166</cmt>
   <desc>WP0166</desc>
@@ -1584,7 +1584,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496658318" lon="-75.735986640">
   <ele>96.600000</ele>
-<time>2005-06-12T14:53:12Z</time>
+<time>2005-06-12T14:53:12.828Z</time>
   <name>WP0167</name>
   <cmt>WP0167</cmt>
   <desc>WP0167</desc>
@@ -1594,7 +1594,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496573318" lon="-75.736061640">
   <ele>96.100000</ele>
-<time>2005-06-12T14:53:17Z</time>
+<time>2005-06-12T14:53:17.827Z</time>
   <name>WP0168</name>
   <cmt>WP0168</cmt>
   <desc>WP0168</desc>
@@ -1604,7 +1604,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496441651" lon="-75.736114974">
   <ele>94.800000</ele>
-<time>2005-06-12T14:53:25Z</time>
+<time>2005-06-12T14:53:25.827Z</time>
   <name>WP0169</name>
   <cmt>WP0169</cmt>
   <desc>WP0169</desc>
@@ -1614,7 +1614,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496343318" lon="-75.736063307">
   <ele>95.200000</ele>
-<time>2005-06-12T14:53:30Z</time>
+<time>2005-06-12T14:53:30.826Z</time>
   <name>WP0170</name>
   <cmt>WP0170</cmt>
   <desc>WP0170</desc>
@@ -1624,7 +1624,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495934984" lon="-75.735669974">
   <ele>93.600000</ele>
-<time>2005-06-12T14:53:51Z</time>
+<time>2005-06-12T14:53:51.825Z</time>
   <name>WP0171</name>
   <cmt>WP0171</cmt>
   <desc>WP0171</desc>
@@ -1634,7 +1634,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495949984" lon="-75.735524974">
   <ele>92.400000</ele>
-<time>2005-06-12T14:53:56Z</time>
+<time>2005-06-12T14:53:56.825Z</time>
   <name>WP0172</name>
   <cmt>WP0172</cmt>
   <desc>WP0172</desc>
@@ -1644,7 +1644,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495986651" lon="-75.735344974">
   <ele>91.200000</ele>
-<time>2005-06-12T14:54:07Z</time>
+<time>2005-06-12T14:54:07.824Z</time>
   <name>WP0173</name>
   <cmt>WP0173</cmt>
   <desc>WP0173</desc>
@@ -1654,7 +1654,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496024984" lon="-75.735221640">
   <ele>92.400000</ele>
-<time>2005-06-12T14:54:19Z</time>
+<time>2005-06-12T14:54:19.823Z</time>
   <name>WP0174</name>
   <cmt>WP0174</cmt>
   <desc>WP0174</desc>
@@ -1664,7 +1664,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496096651" lon="-75.734986640">
   <ele>94.400000</ele>
-<time>2005-06-12T14:54:46Z</time>
+<time>2005-06-12T14:54:46.821Z</time>
   <name>WP0175</name>
   <cmt>WP0175</cmt>
   <desc>WP0175</desc>
@@ -1674,7 +1674,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496131651" lon="-75.734836640">
   <ele>92.800000</ele>
-<time>2005-06-12T14:55:02Z</time>
+<time>2005-06-12T14:55:02.820Z</time>
   <name>WP0176</name>
   <cmt>WP0176</cmt>
   <desc>WP0176</desc>
@@ -1684,7 +1684,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496186651" lon="-75.734716640">
   <ele>94.900000</ele>
-<time>2005-06-12T14:55:11Z</time>
+<time>2005-06-12T14:55:11.820Z</time>
   <name>WP0177</name>
   <cmt>WP0177</cmt>
   <desc>WP0177</desc>
@@ -1694,7 +1694,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496241651" lon="-75.734586640">
   <ele>95.600000</ele>
-<time>2005-06-12T14:55:21Z</time>
+<time>2005-06-12T14:55:21.819Z</time>
   <name>WP0178</name>
   <cmt>WP0178</cmt>
   <desc>WP0178</desc>
@@ -1704,7 +1704,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496301651" lon="-75.734363307">
   <ele>96.300000</ele>
-<time>2005-06-12T14:55:43Z</time>
+<time>2005-06-12T14:55:43.818Z</time>
   <name>WP0179</name>
   <cmt>WP0179</cmt>
   <desc>WP0179</desc>
@@ -1714,7 +1714,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496216651" lon="-75.734409974">
   <ele>96.300000</ele>
-<time>2005-06-12T14:56:17Z</time>
+<time>2005-06-12T14:56:17.815Z</time>
   <name>WP0180</name>
   <cmt>WP0180</cmt>
   <desc>WP0180</desc>
@@ -1722,7 +1722,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496306651" lon="-75.734371640">
   <ele>98.800000</ele>
-<time>2005-06-12T14:56:27Z</time>
+<time>2005-06-12T14:56:27.815Z</time>
   <name>WP0181</name>
   <cmt>WP0181</cmt>
   <desc>WP0181</desc>
@@ -1732,7 +1732,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.496194984" lon="-75.734224974">
   <ele>97.900000</ele>
-<time>2005-06-12T14:57:10Z</time>
+<time>2005-06-12T14:57:10.812Z</time>
   <name>WP0182</name>
   <cmt>WP0182</cmt>
   <desc>WP0182</desc>
@@ -1742,7 +1742,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.495998318" lon="-75.734101640">
   <ele>97.600000</ele>
-<time>2005-06-12T14:57:13Z</time>
+<time>2005-06-12T14:57:13.812Z</time>
   <name>WP0183</name>
   <cmt>WP0183</cmt>
   <desc>WP0183</desc>
@@ -1750,14 +1750,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.494281651" lon="-75.733509974">
   <ele>97.300000</ele>
-<time>2005-06-12T14:57:44Z</time>
+<time>2005-06-12T14:57:44.810Z</time>
   <name>WP0184</name>
   <cmt>WP0184</cmt>
   <desc>WP0184</desc>
 </wpt>
 <wpt lat="45.491526651" lon="-75.730496640">
   <ele>97.500000</ele>
-<time>2005-06-12T14:58:20Z</time>
+<time>2005-06-12T14:58:20.807Z</time>
   <name>WP0185</name>
   <cmt>WP0185</cmt>
   <desc>WP0185</desc>
@@ -1765,7 +1765,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490809984" lon="-75.728584974">
   <ele>97.700000</ele>
-<time>2005-06-12T14:58:21Z</time>
+<time>2005-06-12T14:58:21.807Z</time>
   <name>WP0186</name>
   <cmt>WP0186</cmt>
   <desc>WP0186</desc>
@@ -1773,7 +1773,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489388318" lon="-75.725018307">
   <ele>98.100000</ele>
-<time>2005-06-12T14:58:24Z</time>
+<time>2005-06-12T14:58:24.807Z</time>
   <name>WP0187</name>
   <cmt>WP0187</cmt>
   <desc>WP0187</desc>
@@ -1781,7 +1781,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488314984" lon="-75.722894974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:58:28Z</time>
+<time>2005-06-12T14:58:28.807Z</time>
   <name>WP0188</name>
   <cmt>WP0188</cmt>
   <desc>WP0188</desc>
@@ -1789,14 +1789,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.487204984" lon="-75.721489974">
   <ele>98.200000</ele>
-<time>2005-06-12T14:58:34Z</time>
+<time>2005-06-12T14:58:34.807Z</time>
   <name>WP0189</name>
   <cmt>WP0189</cmt>
   <desc>WP0189</desc>
 </wpt>
 <wpt lat="45.487416651" lon="-75.720791640">
   <ele>97.900000</ele>
-<time>2005-06-12T14:58:42Z</time>
+<time>2005-06-12T14:58:42.806Z</time>
   <name>WP0190</name>
   <cmt>WP0190</cmt>
   <desc>WP0190</desc>
@@ -1804,7 +1804,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488398318" lon="-75.721109974">
   <ele>97.800000</ele>
-<time>2005-06-12T14:58:43Z</time>
+<time>2005-06-12T14:58:43.806Z</time>
   <name>WP0191</name>
   <cmt>WP0191</cmt>
   <desc>WP0191</desc>
@@ -1812,7 +1812,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490408318" lon="-75.722254974">
   <ele>101.300000</ele>
-<time>2005-06-12T14:58:46Z</time>
+<time>2005-06-12T14:58:46.806Z</time>
   <name>WP0192</name>
   <cmt>WP0192</cmt>
   <desc>WP0192</desc>
@@ -1820,7 +1820,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491743318" lon="-75.723359974">
   <ele>105.300000</ele>
-<time>2005-06-12T14:58:52Z</time>
+<time>2005-06-12T14:58:52.805Z</time>
   <name>WP0193</name>
   <cmt>WP0193</cmt>
   <desc>WP0193</desc>
@@ -1830,7 +1830,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491659984" lon="-75.723431640">
   <ele>105.600000</ele>
-<time>2005-06-12T14:58:54Z</time>
+<time>2005-06-12T14:58:54.805Z</time>
   <name>WP0194</name>
   <cmt>WP0194</cmt>
   <desc>WP0194</desc>
@@ -1838,7 +1838,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491213318" lon="-75.723554974">
   <ele>105.700000</ele>
-<time>2005-06-12T14:59:01Z</time>
+<time>2005-06-12T14:59:01.805Z</time>
   <name>WP0195</name>
   <cmt>WP0195</cmt>
   <desc>WP0195</desc>
@@ -1846,7 +1846,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490278318" lon="-75.723608307">
   <ele>104.700000</ele>
-<time>2005-06-12T14:59:15Z</time>
+<time>2005-06-12T14:59:15.804Z</time>
   <name>WP0196</name>
   <cmt>WP0196</cmt>
   <desc>WP0196</desc>
@@ -1854,7 +1854,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490369984" lon="-75.723388307">
   <ele>103.600000</ele>
-<time>2005-06-12T14:59:17Z</time>
+<time>2005-06-12T14:59:17.804Z</time>
   <name>WP0197</name>
   <cmt>WP0197</cmt>
   <desc>WP0197</desc>
@@ -1862,7 +1862,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490526651" lon="-75.721809974">
   <ele>101.300000</ele>
-<time>2005-06-12T14:59:24Z</time>
+<time>2005-06-12T14:59:24.803Z</time>
   <name>WP0198</name>
   <cmt>WP0198</cmt>
   <desc>WP0198</desc>
@@ -1870,7 +1870,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490071651" lon="-75.720394974">
   <ele>99.900000</ele>
-<time>2005-06-12T14:59:29Z</time>
+<time>2005-06-12T14:59:29.803Z</time>
   <name>WP0199</name>
   <cmt>WP0199</cmt>
   <desc>WP0199</desc>
@@ -1880,7 +1880,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488781651" lon="-75.717853307">
   <ele>98.100000</ele>
-<time>2005-06-12T14:59:40Z</time>
+<time>2005-06-12T14:59:40.802Z</time>
   <name>WP0200</name>
   <cmt>WP0200</cmt>
   <desc>WP0200</desc>
@@ -1888,7 +1888,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488024984" lon="-75.715301640">
   <ele>97.900000</ele>
-<time>2005-06-12T14:59:54Z</time>
+<time>2005-06-12T14:59:54.801Z</time>
   <name>WP0201</name>
   <cmt>WP0201</cmt>
   <desc>WP0201</desc>
@@ -1896,7 +1896,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.487381651" lon="-75.712531640">
   <ele>97.700000</ele>
-<time>2005-06-12T15:00:08Z</time>
+<time>2005-06-12T15:00:08.800Z</time>
   <name>WP0202</name>
   <cmt>WP0202</cmt>
   <desc>WP0202</desc>
@@ -1904,7 +1904,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.487396651" lon="-75.711828307">
   <ele>97.700000</ele>
-<time>2005-06-12T15:00:12Z</time>
+<time>2005-06-12T15:00:12.800Z</time>
   <name>WP0203</name>
   <cmt>WP0203</cmt>
   <desc>WP0203</desc>
@@ -1912,7 +1912,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.487534984" lon="-75.711744974">
   <ele>97.700000</ele>
-<time>2005-06-12T15:00:13Z</time>
+<time>2005-06-12T15:00:13.800Z</time>
   <name>WP0204</name>
   <cmt>WP0204</cmt>
   <desc>WP0204</desc>
@@ -1920,7 +1920,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.487728318" lon="-75.711471640">
   <ele>97.500000</ele>
-<time>2005-06-12T15:00:15Z</time>
+<time>2005-06-12T15:00:15.800Z</time>
   <name>WP0205</name>
   <cmt>WP0205</cmt>
   <desc>WP0205</desc>
@@ -1928,7 +1928,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.487859984" lon="-75.710994974">
   <ele>97.300000</ele>
-<time>2005-06-12T15:00:17Z</time>
+<time>2005-06-12T15:00:17.800Z</time>
   <name>WP0206</name>
   <cmt>WP0206</cmt>
   <desc>WP0206</desc>
@@ -1936,7 +1936,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488128318" lon="-75.708784974">
   <ele>97.100000</ele>
-<time>2005-06-12T15:00:26Z</time>
+<time>2005-06-12T15:00:26.799Z</time>
   <name>WP0207</name>
   <cmt>WP0207</cmt>
   <desc>WP0207</desc>
@@ -1944,7 +1944,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488351651" lon="-75.705628307">
   <ele>97.000000</ele>
-<time>2005-06-12T15:00:39Z</time>
+<time>2005-06-12T15:00:39.798Z</time>
   <name>WP0208</name>
   <cmt>WP0208</cmt>
   <desc>WP0208</desc>
@@ -1952,7 +1952,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.488748318" lon="-75.704488307">
   <ele>97.100000</ele>
-<time>2005-06-12T15:00:43Z</time>
+<time>2005-06-12T15:00:43.798Z</time>
   <name>WP0209</name>
   <cmt>WP0209</cmt>
   <desc>WP0209</desc>
@@ -1962,7 +1962,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489294984" lon="-75.703023307">
   <ele>97.200000</ele>
-<time>2005-06-12T15:00:52Z</time>
+<time>2005-06-12T15:00:52.798Z</time>
   <name>WP0210</name>
   <cmt>WP0210</cmt>
   <desc>WP0210</desc>
@@ -1972,7 +1972,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489278318" lon="-75.703171640">
   <ele>97.100000</ele>
-<time>2005-06-12T15:00:56Z</time>
+<time>2005-06-12T15:00:56.797Z</time>
   <name>WP0211</name>
   <cmt>WP0211</cmt>
   <desc>WP0211</desc>
@@ -1982,7 +1982,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489263318" lon="-75.703306640">
   <ele>96.900000</ele>
-<time>2005-06-12T15:01:14Z</time>
+<time>2005-06-12T15:01:14.796Z</time>
   <name>WP0212</name>
   <cmt>WP0212</cmt>
   <desc>WP0212</desc>
@@ -1990,7 +1990,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489364984" lon="-75.702803307">
   <ele>96.900000</ele>
-<time>2005-06-12T15:01:37Z</time>
+<time>2005-06-12T15:01:37.795Z</time>
   <name>WP0213</name>
   <cmt>WP0213</cmt>
   <desc>WP0213</desc>
@@ -1998,14 +1998,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489553318" lon="-75.700098307">
   <ele>97.300000</ele>
-<time>2005-06-12T15:01:45Z</time>
+<time>2005-06-12T15:01:45.794Z</time>
   <name>WP0214</name>
   <cmt>WP0214</cmt>
   <desc>WP0214</desc>
 </wpt>
 <wpt lat="45.489698318" lon="-75.698621640">
   <ele>97.200000</ele>
-<time>2005-06-12T15:01:59Z</time>
+<time>2005-06-12T15:01:59.793Z</time>
   <name>WP0215</name>
   <cmt>WP0215</cmt>
   <desc>WP0215</desc>
@@ -2015,7 +2015,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489766651" lon="-75.698538307">
   <ele>97.200000</ele>
-<time>2005-06-12T15:02:04Z</time>
+<time>2005-06-12T15:02:04.793Z</time>
   <name>WP0216</name>
   <cmt>WP0216</cmt>
   <desc>WP0216</desc>
@@ -2023,7 +2023,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489761651" lon="-75.698398307">
   <ele>97.100000</ele>
-<time>2005-06-12T15:02:12Z</time>
+<time>2005-06-12T15:02:12.792Z</time>
   <name>WP0217</name>
   <cmt>WP0217</cmt>
   <desc>WP0217</desc>
@@ -2031,14 +2031,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489583318" lon="-75.695093307">
   <ele>97.400000</ele>
-<time>2005-06-12T15:02:28Z</time>
+<time>2005-06-12T15:02:28.791Z</time>
   <name>WP0218</name>
   <cmt>WP0218</cmt>
   <desc>WP0218</desc>
 </wpt>
 <wpt lat="45.489726651" lon="-75.693488307">
   <ele>97.500000</ele>
-<time>2005-06-12T15:02:36Z</time>
+<time>2005-06-12T15:02:36.791Z</time>
   <name>WP0219</name>
   <cmt>WP0219</cmt>
   <desc>WP0219</desc>
@@ -2046,7 +2046,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489909984" lon="-75.693386640">
   <ele>97.500000</ele>
-<time>2005-06-12T15:02:37Z</time>
+<time>2005-06-12T15:02:37.791Z</time>
   <name>WP0220</name>
   <cmt>WP0220</cmt>
   <desc>WP0220</desc>
@@ -2054,7 +2054,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490408318" lon="-75.692841640">
   <ele>97.500000</ele>
-<time>2005-06-12T15:02:41Z</time>
+<time>2005-06-12T15:02:41.791Z</time>
   <name>WP0221</name>
   <cmt>WP0221</cmt>
   <desc>WP0221</desc>
@@ -2062,7 +2062,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490608318" lon="-75.692348307">
   <ele>97.400000</ele>
-<time>2005-06-12T15:02:44Z</time>
+<time>2005-06-12T15:02:44.790Z</time>
   <name>WP0222</name>
   <cmt>WP0222</cmt>
   <desc>WP0222</desc>
@@ -2070,14 +2070,14 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491079984" lon="-75.690218307">
   <ele>97.400000</ele>
-<time>2005-06-12T15:02:56Z</time>
+<time>2005-06-12T15:02:56.790Z</time>
   <name>WP0223</name>
   <cmt>WP0223</cmt>
   <desc>WP0223</desc>
 </wpt>
 <wpt lat="45.491288318" lon="-75.688778307">
   <ele>97.300000</ele>
-<time>2005-06-12T15:03:04Z</time>
+<time>2005-06-12T15:03:04.789Z</time>
   <name>WP0224</name>
   <cmt>WP0224</cmt>
   <desc>WP0224</desc>
@@ -2085,7 +2085,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.491183318" lon="-75.688611640">
   <ele>97.300000</ele>
-<time>2005-06-12T15:03:05Z</time>
+<time>2005-06-12T15:03:05.789Z</time>
   <name>WP0225</name>
   <cmt>WP0225</cmt>
   <desc>WP0225</desc>
@@ -2093,7 +2093,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490993318" lon="-75.688663307">
   <ele>99.000000</ele>
-<time>2005-06-12T15:03:06Z</time>
+<time>2005-06-12T15:03:06.789Z</time>
   <name>WP0226</name>
   <cmt>WP0226</cmt>
   <desc>WP0226</desc>
@@ -2103,7 +2103,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489688318" lon="-75.688748307">
   <ele>99.300000</ele>
-<time>2005-06-12T15:03:16Z</time>
+<time>2005-06-12T15:03:16.788Z</time>
   <name>WP0227</name>
   <cmt>WP0227</cmt>
   <desc>WP0227</desc>
@@ -2111,7 +2111,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489516651" lon="-75.688719974">
   <ele>99.200000</ele>
-<time>2005-06-12T15:03:20Z</time>
+<time>2005-06-12T15:03:20.788Z</time>
   <name>WP0228</name>
   <cmt>WP0228</cmt>
   <desc>WP0228</desc>
@@ -2121,7 +2121,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489606651" lon="-75.688778307">
   <ele>99.000000</ele>
-<time>2005-06-12T15:03:26Z</time>
+<time>2005-06-12T15:03:26.788Z</time>
   <name>WP0229</name>
   <cmt>WP0229</cmt>
   <desc>WP0229</desc>
@@ -2131,7 +2131,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489716651" lon="-75.688851640">
   <ele>98.600000</ele>
-<time>2005-06-12T15:03:53Z</time>
+<time>2005-06-12T15:03:53.786Z</time>
   <name>WP0230</name>
   <cmt>WP0230</cmt>
   <desc>WP0230</desc>
@@ -2141,7 +2141,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489636651" lon="-75.688773307">
   <ele>98.300000</ele>
-<time>2005-06-12T15:04:12Z</time>
+<time>2005-06-12T15:04:12.785Z</time>
   <name>WP0231</name>
   <cmt>WP0231</cmt>
   <desc>WP0231</desc>
@@ -2149,7 +2149,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489688318" lon="-75.688884974">
   <ele>98.000000</ele>
-<time>2005-06-12T15:04:34Z</time>
+<time>2005-06-12T15:04:34.783Z</time>
   <name>WP0232</name>
   <cmt>WP0232</cmt>
   <desc>WP0232</desc>
@@ -2157,7 +2157,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489699984" lon="-75.688648307">
   <ele>98.200000</ele>
-<time>2005-06-12T15:04:37Z</time>
+<time>2005-06-12T15:04:37.783Z</time>
   <name>WP0233</name>
   <cmt>WP0233</cmt>
   <desc>WP0233</desc>
@@ -2165,7 +2165,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489858318" lon="-75.688149974">
   <ele>98.400000</ele>
-<time>2005-06-12T15:04:43Z</time>
+<time>2005-06-12T15:04:43.783Z</time>
   <name>WP0234</name>
   <cmt>WP0234</cmt>
   <desc>WP0234</desc>
@@ -2173,7 +2173,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489979984" lon="-75.687781640">
   <ele>98.400000</ele>
-<time>2005-06-12T15:04:51Z</time>
+<time>2005-06-12T15:04:51.782Z</time>
   <name>WP0235</name>
   <cmt>WP0235</cmt>
   <desc>WP0235</desc>
@@ -2183,7 +2183,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.489979984" lon="-75.687646640">
   <ele>98.100000</ele>
-<time>2005-06-12T15:05:11Z</time>
+<time>2005-06-12T15:05:11.781Z</time>
   <name>WP0236</name>
   <cmt>WP0236</cmt>
   <desc>WP0236</desc>
@@ -2191,7 +2191,7 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
 </wpt>
 <wpt lat="45.490004984" lon="-75.684934974">
   <ele>97.400000</ele>
-<time>2005-06-12T15:05:30Z</time>
+<time>2005-06-12T15:05:30.780Z</time>
   <name>WP0237</name>
   <cmt>WP0237</cmt>
   <desc>WP0237</desc>
index eb3f0cf4eeaed68d9f53e87c24c111ac777b0df6..d139f2c6ed26cac37da1bac52456ab5f2e854748 100644 (file)
@@ -5,7 +5,7 @@ creator="GPSBabel - http://www.gpsbabel.org"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
-<bounds minlat="54.785117200" minlon ="-2.345095800" maxlat="54.787984800" maxlon="-2.342500800" />
+<bounds minlat="54.785117200" minlon="-2.345095800" maxlat="54.787984800" maxlon="-2.342500800"/>
 <trk>
 <trkseg>
 <trkpt lat="54.786918600" lon="-2.344296200">
diff --git a/route.c b/route.c
index 39130834f3a908b6e25d2bee22ad12f1dc92ba84..d6c6a38808a096076afc9e3b3d910dab10331b88 100644 (file)
--- a/route.c
+++ b/route.c
@@ -205,7 +205,6 @@ static void
 any_route_del_wpt( route_head *rte, waypoint *wpt, int *ct)
 {
        dequeue( &wpt->Q );
-       waypt_free( wpt );
        rte->rte_waypt_ct--;
        if ( ct ) (*ct)--;
 }
diff --git a/shapelib/.cvsignore b/shapelib/.cvsignore
new file mode 100644 (file)
index 0000000..f3c7a7c
--- /dev/null
@@ -0,0 +1 @@
+Makefile
index 9e75ec7d1a950a24741199ae925d73b742671a9a..255068b98f58672d3738e1804a4b926a798d9945 100644 (file)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: shpopen.c,v 1.4 2006/07/13 03:27:54 robertl Exp $
+ * $Id: shpopen.c,v 1.5 2006/11/24 21:55:52 oliskoli Exp $
  *
  * Project:  Shapelib
  * Purpose:  Implementation of core Shapefile read/write functions.
@@ -34,6 +34,9 @@
  ******************************************************************************
  *
  * $Log: shpopen.c,v $
+ * Revision 1.5  2006/11/24 21:55:52  oliskoli
+ * Remove (shpopen) warning on FreeBSD.
+ *
  * Revision 1.4  2006/07/13 03:27:54  robertl
  * Andy Armstrong turns on -Wall for GCC builds and kills about a sequillion warnings.  Most of them aren't "real", but it's still a good thing to clean up.
  * (I hope I don't regret this before 1.3.1...)
  */
 
 /*static char rcsid[] = 
-  "$Id: shpopen.c,v 1.4 2006/07/13 03:27:54 robertl Exp $";*/
+  "$Id: shpopen.c,v 1.5 2006/11/24 21:55:52 oliskoli Exp $";*/
 
 #include "shapefil.h"
 #include "config.h"
@@ -933,6 +936,7 @@ SHPWriteObject(SHPHandle psSHP, int nShapeId, SHPObject * psObject )
     uchar      *pabyRec;
     int32      i32;
 
+    nRecordSize = 0;
     psSHP->bUpdated = TRUE;
 
 /* -------------------------------------------------------------------- */
index e8245219994daaad7f1bc0e376f65339c7090d35..f3088766c26486345fac435d5a5ad48f242ed396 100644 (file)
@@ -271,6 +271,7 @@ routesimple_tail( const route_head *rte )
                }
                route_del_wpt( (route_head *)(void *)rte,
                                (waypoint *)(void *)(xte_recs[i].intermed->wpt));
+               waypt_free((waypoint *)(void *)(xte_recs[i].intermed->wpt));
                
                if ( xte_recs[i].intermed->prev ) {
                        xte_recs[i].intermed->prev->next = xte_recs[i].intermed->next;
index bc2e861e5cbc06ee113aee97b058ce8edb470093..af4a68062babd6c565924b4b17ba15df91258369 100644 (file)
--- a/stmsdf.c
+++ b/stmsdf.c
@@ -192,7 +192,7 @@ finalize_tracks(void)
 
        for (index = 0; index < count; index++) {
                waypoint *wpt = list[index];
-               if (wpt->centiseconds == 2) {   /* log continued */
+               if (wpt->microseconds == 2) {   /* log continued */
                        track = NULL;
                }
                if (track == NULL) {
@@ -209,10 +209,10 @@ finalize_tracks(void)
                                track->rte_desc = xstrdup(rte_desc);
                }
                track_add_wpt(track, wpt);
-               if (wpt->centiseconds == 1) { /* log pause */
+               if (wpt->microseconds == 1) { /* log pause */
                        track = NULL;
                }
-               wpt->centiseconds = 0;
+               wpt->microseconds = 0;
        }
 
        xfree(list);
@@ -290,7 +290,7 @@ parse_point(char *line)
                        case 10:
                                break;
                        case 11:
-                               if (what == 1) wpt->centiseconds = atoi(str); /* memory point type */
+                               if (what == 1) wpt->microseconds = atoi(str); /* memory point type */
                                break;
                }
        }
index 288b21117208435e956e970f2063ce0c334bf6eb..1842454243c4f6474f7d10d693b5b42fe1113efc 100644 (file)
--- a/stmwpp.c
+++ b/stmwpp.c
@@ -92,6 +92,7 @@ stmwpp_data_read(void)
                while (c != NULL)
                {
                        int new_what;
+                       int fracsec;
                        
                        switch(column)
                        {
@@ -135,9 +136,10 @@ stmwpp_data_read(void)
                                        break;
                                        
                                case 6:
-                                       sscanf(c, "%d:%d:%d.%d", &time.tm_hour, &time.tm_min, &time.tm_sec, &wpt->centiseconds);
-                                       if (what == STM_TRKPT)
-                                               wpt->centiseconds /= 10;
+                                       sscanf(c, "%d:%d:%d.%d", &time.tm_hour, &time.tm_min, &time.tm_sec, &fracsec);
+                                       wpt->microseconds = MILLI_TO_MICRO(fracsec);
+                                       /* makes sense only for recorded trackpoints */
+                                       if (what != STM_TRKPT) wpt->microseconds = 0;
                                        break;
                                        
                                default:
@@ -247,10 +249,10 @@ stmwpp_waypt_cb(const waypoint *wpt)
        {
                case STM_WAYPT:
                case STM_RTEPT:
-                       gbfprintf(fout, ".%02d", wpt->centiseconds);
+                       gbfprintf(fout, ".%02d", 0);
                        break;
                case STM_TRKPT:
-                       gbfprintf(fout, ".%03d", wpt->centiseconds * 10);
+                       gbfprintf(fout, ".%03d", MICRO_TO_MILLI(wpt->microseconds));
                        break;
        }
        gbfprintf(fout, ",\r\n");
index 6bc036a5a21a547c2feef5bed088112d131ffce4..a23e14174256d43f25ef2927b09a8a0b16c7e766 100644 (file)
@@ -24,4 +24,7 @@ SHORTWHITE              0
 IFIELD LAT_DECIMAL, "", "%10.6f"
 IFIELD LON_DECIMAL, "", "%10.6f"
 IFIELD ALT_METERS, "", "%10.0f"
-IFIELD GMT_TIME, "", "%a %b %d %T %Y"
+# Reports are that this format stores in local time, not GMT as 
+# originally thought.
+# IFIELD       GMT_TIME, "", "%a %b %d %H:%M:%S %Y"
+IFIELD LOCAL_TIME, "", "%a %b %d %H:%M:%S %Y"
diff --git a/style/kompass_tk.style b/style/kompass_tk.style
new file mode 100644 (file)
index 0000000..2b6ffaf
--- /dev/null
@@ -0,0 +1,18 @@
+# gpsbabel XCSV style file
+#
+# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints
+# Author: Olaf Klein
+#   Date: 01/10/2007
+#
+# 
+DESCRIPTION            Kompass (DAV) Track (.tk)
+DATATYPE               TRACK
+EXTENSION              wp
+FIELD_DELIMITER                COMMA
+RECORD_DELIMITER       NEWLINE
+BADCHARS               ,"
+#
+# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:
+#
+IFIELD LAT_DECIMAL, "", "%.7f"
+IFIELD LON_DECIMAL, "", "%.7f"
diff --git a/style/kompass_wp.style b/style/kompass_wp.style
new file mode 100644 (file)
index 0000000..2f4db45
--- /dev/null
@@ -0,0 +1,26 @@
+# gpsbabel XCSV style file
+#
+# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints
+# Author: Olaf Klein
+#   Date: 01/10/2007
+#
+# 
+DESCRIPTION            Kompass (DAV) Waypoints (.wp)
+DATATYPE               WAYPOINT
+EXTENSION              wp
+ENCODING               UTF-8
+FIELD_DELIMITER                SEMICOLON
+RECORD_DELIMITER       CRNEWLINE
+BADCHARS               ,"
+#
+# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:
+#
+IFIELD SHORTNAME, "", "%s"
+IFIELD LON_DECIMAL, "", "%.7f"
+IFIELD LAT_DECIMAL, "", "%.7f"
+IFIELD ALT_METERS, "", "%.0f"
+IFIELD LOCAL_TIME,"","%d.%m.%Y %H:%M:%S"
+IFIELD CONSTANT, "Icons\Wegpunkt grün.bmp", "%s"
+IFIELD IGNORE, "", "%s"
+IFIELD  CONSTANT, "1", "%s"                    # unknown
+IFIELD DESCRIPTION, "", "%s"
index b65b776861baa15f64710ed49c391cedf7bc04b5..65d0f31d46c7b043ae9b6fd24d6969b3ce609b34 100644 (file)
@@ -53,3 +53,5 @@ IFIELD  PATH_DISTANCE_MILES,"","%f"
 IFIELD  PATH_DISTANCE_KM, "", "%f"
 IFIELD  GEOCACHE_PLACER,"","%s"
 IFIELD  YYYYMMDD_TIME,"","%ld"
+IFIELD GEOCACHE_HINT, "", "%s"
+IFIELD GEOCACHE_LAST_FOUND, "", "%d"
index 3112d5fc5dd86a0830d55cc2e61483b665dee9b6..dbc58ea3f3b14977c48d557087ab44ebf64626cf 100644 (file)
--- a/tef_xml.c
+++ b/tef_xml.c
@@ -104,23 +104,20 @@ tef_header(const char *args, const char **attrv)
 {
        const char **avp = &attrv[0];
 
-       if (global_opts.objective == rtedata)
+       route = route_head_alloc();
+       while (*avp) 
        {
-           route = route_head_alloc();
-           while (*avp) 
+           if (strcmp(avp[0], "Name") == 0) 
+           {
+               route->rte_name = xstrdup(avp[1]);
+           }
+           else if (strcmp(avp[0], "Software") == 0) 
            {
-               if (strcmp(avp[0], "Name") == 0) 
-               {
-                   route->rte_name = xstrdup(avp[1]);
-               }
-               else if (strcmp(avp[0], "Software") == 0) 
-               {
-                   route->rte_desc = xstrdup(avp[1]);
-               }
-               avp+=2;
+               route->rte_desc = xstrdup(avp[1]);
            }
-           route_add_head(route);
+           avp+=2;
        }
+       route_add_head(route);
 }
 
 /*
@@ -151,8 +148,8 @@ void waypoint_final()
        int via;
        if (wpt_tmp == NULL) return;
 
-       via = wpt_tmp->centiseconds;
-       wpt_tmp->centiseconds = 0;
+       via = wpt_tmp->microseconds;
+       wpt_tmp->microseconds = 0;
        
        if (via != 0)
            waypt_add(wpt_tmp);
@@ -202,10 +199,9 @@ tef_item_start(const char *args, const char **attrv)
        const char **avp = &attrv[0];
 
        wpt_tmp = waypt_new();
-       wpt_tmp->centiseconds = 0;
        
        if ((waypoints == 1) || (waypoints == item_count)) 
-           wpt_tmp->centiseconds++;
+           wpt_tmp->microseconds++;
            
        waypoints++;
        
@@ -221,7 +217,7 @@ tef_item_start(const char *args, const char **attrv)
            }
            if ((0 == strcmp(avp[0], "ViaStation")) && (0 == strcmp(avp[1], "true")))
            {
-               wpt_tmp->centiseconds = 1;
+               wpt_tmp->microseconds = 1;
            }
            avp+=2;
        }
diff --git a/test-all b/test-all
new file mode 100755 (executable)
index 0000000..3740b01
--- /dev/null
+++ b/test-all
@@ -0,0 +1,208 @@
+#!/bin/bash
+
+### cross format read/(write) test ###
+
+PNAME=${PNAME:-./gpsbabel}
+REFGPX="reference/expertgps.gpx"       # reference file for all tests
+EXCL="ozi vitosmt"                     # exclude formats from test
+CAPS=""
+TEMPDIR=/tmp/gb-test-all
+CATALOG=/tmp/gb-test-all.done
+LOGFILE=/tmp/gb-test-all.log
+
+# options
+vg=0
+prep=0
+
+function log_entry()
+{
+    touch $LOGFILE
+    echo "-----------------------------------------------------------------------" >> ${LOGFILE}
+    date >> ${LOGFILE}
+    echo "$*" >> ${LOGFILE}
+}
+
+function try_run() # command line
+{
+    local CMD="$*"
+    local RES=0
+    
+    [ $vg -ne 0 ] && CMD="valgrind -q $CMD"
+
+    ${CMD} > $TEMPDIR/.result 2>&1
+    RES=$?
+    if [ $RES -ne 0 -o -s $TEMPDIR/.result ]; then
+       if [ $RES -ne 0 ]; then
+           echo " -- Uhps --"
+           echo "-----------------------------------------------------------------------"
+           test -s $TEMPDIR/.result && cat $TEMPDIR/.result
+           echo "-----------------------------------------------------------------------"
+       else
+           echo ""
+       fi
+       log_entry "cmd($RES): $CMD"
+       test -s $TEMPDIR/.result && cat $TEMPDIR/.result >> ${LOGFILE}
+       return 1
+    else
+       return 0
+    fi
+}
+
+function STAGE_1 () # type format
+{
+    local TYP=$1
+    local FMT=$2
+    local CMD1 CMD2 IFILE OFILE
+    
+    echo "$CAPS" |
+    
+    while read type caps format comment; do
+    
+       for i in $EXCL; do
+           if [ "$format" == "$i" ]; then
+               caps="------"
+           fi
+       done
+       
+       grep "$TYP: $FMT & $format" ${CATALOG} > /dev/null && continue
+       
+       echo -n "testing "
+       case $TYP in
+           w)
+               echo -n "waypoints"
+               caps=${caps:0:2}
+               ;;
+           t)
+               echo -n "tracks"
+               caps=${caps:2:2}
+               ;;
+           r)
+               echo -n "routes"
+               caps=${caps:4:2}
+               ;;
+       esac
+
+       echo -n ": \"$FMT\" with \"$format\" "
+       
+       IFILE=$TEMPDIR/$TYP-$FMT
+       OFILE=$TEMPDIR/$TYP-$FMT.$format
+       
+       case $caps in
+           -w)
+               echo -n "*"
+               CMD1="${PNAME} -$TYP -i $FMT -f $IFILE -o $format -F $OFILE"
+               try_run "${CMD1}" || continue
+               ;;
+               
+           rw)
+               echo -n "*"
+               CMD1="${PNAME} -$TYP -i $FMT -f $IFILE -o $format -F $OFILE"
+               try_run "${CMD1}" || continue
+               echo -n "*"
+               CMD2="${PNAME} -$TYP -i $format -f $OFILE -o $FMT -F $OFILE.$FMT"
+               try_run "${CMD2}" || continue
+               ;;
+       esac
+       
+       echo "*"
+       echo "$TYP: $FMT & $format" >> $CATALOG
+    done
+    return 0
+}
+
+function STAGE_0 ()
+{
+    echo "$CAPS" |
+    
+    while read type caps format comment; do
+    
+       for i in $EXCL; do
+               if [ "$format" == "$i" ]; then
+                       caps="------"
+               fi
+       done
+       
+       case ${caps:0:2} in
+           rw)
+               CMD="${PNAME} -i gpx -f $REFGPX -x nuketypes,routes,tracks -o $format -F $TEMPDIR/w-$format"
+               try_run "${CMD}" || continue
+               STAGE_1 "w" $format || exit 1
+               ;;
+           -w)
+               CMD="${PNAME} -i gpx -f $REFGPX -x nuketypes,routes,tracks -o $format -F $TEMPDIR/w-$format"
+               try_run "${CMD}" || continue
+               ;;
+       esac
+       case ${caps:2:2} in
+           rw)
+               CMD="${PNAME} -t -i gpx -f $REFGPX -x nuketypes,waypoints,routes -o $format -F $TEMPDIR/t-$format"
+               try_run "${CMD}" || continue
+               STAGE_1 "t" $format || exit 1
+               ;;
+           -w)
+               CMD="${PNAME} -t -i gpx -f $REFGPX -x nuketypes,waypoints,routes -o $format -F $TEMPDIR/t-$format"
+               try_run "${CMD}" || continue
+               ;;
+       esac
+       case ${caps:4:2} in
+           rw)
+               CMD="${PNAME} -r -i gpx -f $REFGPX -x nuketypes,waypoints,tracks -o $format -F $TEMPDIR/r-$format"
+               try_run "${CMD}" || continue
+               STAGE_1 "r" $format || exit 1
+               ;;
+           -w)
+               CMD="${PNAME} -r -i gpx -f $REFGPX -x nuketypes,waypoints,tracks -o $format -F $TEMPDIR/r-$format"
+               try_run "${CMD}" || continue
+               ;;
+       esac
+    done
+    rm -f $TEMPDIR/.result
+}
+
+rm -rf $TEMPDIR > /dev/null
+mkdir -p $TEMPDIR > /dev/null
+
+while [ $# -gt 0 ]; do
+    case $1 in
+       -s|--start)     # remove catalog. run the full test.
+           rm -f $CATALOG
+           ;;
+       -v|--valgrind)
+           vg=1
+           ;;
+       -p|--prepare)   # prepare for valgrind check.
+           prep=1
+           ;;
+       -c|--clean)
+           trap "rm -fr $TEMPDIR; exit 1" 0 1 2 3 15
+           ;;
+       -r|--reference)
+           shift
+           REFGPX=$1
+           ;;
+    esac
+    shift
+done
+
+if [ $prep -ne 0 ]; then
+    test -s Makefile && make clean
+    CFLAGS="-O0" ./configure || exit 1 #  -O0 is suggested by vg.
+    make || exit 1
+    echo "All fine. You can do now a 'test-all -v'"
+    exit 0
+fi
+
+if test ! -s $REFGPX; then
+    echo "GPX reference \"$REFGPX\" doesn't exist!"
+    exit 1
+fi
+
+test -s $LOGFILE && rm -f $LOGFILE.bak > /dev/null
+touch $LOGFILE
+touch $CATALOG
+
+log_entry "test-all started."
+echo "Catalog: $CATALOG" >> $LOGFILE
+
+CAPS=`${PNAME} -^2 | grep "^file"`
+STAGE_0
diff --git a/testo b/testo
index 9e09220a7dda9eac78d53de5bb731b469b061c22..36fc4502655e2d16be4fcdc9963eed969b86b71f 100644 (file)
--- a/testo
+++ b/testo
@@ -94,6 +94,16 @@ ${PNAME} -i gpx -f ${TMPDIR}/gtm1.gpx -o gtm -F ${TMPDIR}/gtm.gtm
 ${PNAME} -i gtm -f ${TMPDIR}/gtm.gtm -o gpx -F ${TMPDIR}/gtm2.gpx
 compare ${TMPDIR}/gtm1.gpx ${TMPDIR}/gtm2.gpx
 bincompare ${TMPDIR}/gtm.gtm ${REFERENCE}/sample.gtm
+#
+# GTM compressed files
+# ... do the same as above but with gzipped gtm files
+#
+rm -f ${TMPDIR}/gl.gpx ${TMPDIR}/gpx.gpx
+${PNAME} -i gtm -f ${REFERENCE}/sample.gtm.gz -o gpx -F ${TMPDIR}/gtm1.gpx
+${PNAME} -i gpx -f ${TMPDIR}/gtm1.gpx -o gtm -F ${TMPDIR}/gtm.gtm.gz
+${PNAME} -i gtm -f ${TMPDIR}/gtm.gtm.gz -o gpx -F ${TMPDIR}/gtm2.gpx
+compare ${TMPDIR}/gtm1.gpx ${TMPDIR}/gtm2.gpx
+bincompare ${TMPDIR}/gtm.gtm.gz ${REFERENCE}/sample.gtm.gz
 
 # Magellan Mapsend
 rm -f ${TMPDIR}/mm.mapsend ${TMPDIR}/mm.gps
@@ -159,6 +169,9 @@ compare ${TMPDIR}/mm.gps ${TMPDIR}/gu.wpt
 ${PNAME} -t -i gpx -f ${REFERENCE}/track/tracks.gpx -o pcx -F ${TMPDIR}/pcx.trk
 ${PNAME} -t -i pcx -f ${REFERENCE}/track/pcx.trk -o pcx -F ${TMPDIR}/pcx2.trk
 compare ${TMPDIR}/pcx.trk ${TMPDIR}/pcx2.trk 
+# GPSUtil strain - hand crafted, but based on problem report.
+${PNAME} -i pcx -f reference/gpsutil-1.pcx -o pcx -F ${TMPDIR}/mm-2.pcx
+compare ${TMPDIR}/mm-2.pcx ${TMPDIR}/mm.pcx
 
 #
 # Magellan file format
@@ -783,7 +796,7 @@ ${PNAME} -i geo -f ${REFERENCE}/../geocaching.loc -o text -F ${TMPDIR}/text.out
 # tef "TourExchangeFormat" read test
 #
 rm -f ${TMPDIR}/tef_xml*
-${PNAME} -r -i tef -f ${REFERENCE}/route/tef_xml.sample.xml -o gpx -F ${TMPDIR}/tef_xml.sample.gpx
+${PNAME} -i tef -f ${REFERENCE}/route/tef_xml.sample.xml -o gpx -F ${TMPDIR}/tef_xml.sample.gpx
 compare ${TMPDIR}/tef_xml.sample.gpx ${REFERENCE}/route/tef_xml.sample.gpx 
 
 #
@@ -805,6 +818,8 @@ ${PNAME} -i gdb,via -f ${REFERENCE}/gdb-sample.gdb -o gpx -F ${TMPDIR}/gdb-sampl
 compare ${REFERENCE}/gdb-sample.gpx ${TMPDIR}/gdb-sample.gpx
 ${PNAME} -i gpx -f ${REFERENCE}/gdb-sample.gpx -o gdb,ver=1 -F ${TMPDIR}/gdb-sample.gdb
 ${PNAME} -i gdb -f ${TMPDIR}/gdb-sample.gdb -o gpx -F ${TMPDIR}/gdb-sample.gpx
+${PNAME} -i gdb,via -f ${REFERENCE}/gdb-sample-v3.gdb -o gpx -F ${TMPDIR}/gdb-sample_v3.gpx
+compare ${REFERENCE}/gdb-sample.gpx ${TMPDIR}/gdb-sample_v3.gpx
 #
 # Because of Garmin coordinates storage gpx is not good for this test
 # compare ${REFERENCE}/gdb-sample.gpx ${TMPDIR}/gdb-sample.gpx
@@ -1147,5 +1162,29 @@ compare ${TMPDIR}/transform-rte.gpx ${REFERENCE}/transform-rte.gpx
 ${PNAME} -i gpx -f ${REFERENCE}/expertgps.gpx -x nuketypes,waypoints,tracks -x transform,wpt=rte,del=y -o gpx -F ${TMPDIR}/transform-wpt.gpx
 compare ${TMPDIR}/transform-wpt.gpx ${REFERENCE}/transform-wpt.gpx
 
+#
+# "Raymarine Waypoint File" tests
+#
+${PNAME} -i raymarine -f ${REFERENCE}/raymarine-sample.rwf -o gpx -F ${TMPDIR}/raymarine-sample.gpx
+compare ${TMPDIR}/raymarine-sample.gpx ${REFERENCE}/raymarine-sample.gpx
+${PNAME} -i gpx -f ${REFERENCE}/expertgps.gpx -o raymarine -F ${TMPDIR}/expertgps.rwf
+compare ${TMPDIR}/expertgps.rwf ${REFERENCE}/expertgps.rwf
+
+
+#
+# Alan MAp500 waypoint & route test
+#
+rm -f ${TMPDIR}/alanwpr*
+${PNAME} -i alanwpr -f ${REFERENCE}/alanwpr.wpr -o alanwpr -F ${TMPDIR}/alanwpr-new.wpr
+${PNAME} -i alanwpr -f ${TMPDIR}/alanwpr-new.wpr -o gpx -F ${TMPDIR}/alanwpr-new.gpx
+compare ${TMPDIR}/alanwpr-new.gpx ${REFERENCE}/alanwpr.gpx
+
+#
+# Alan Map500 tracklogs< test
+#
+rm -f ${TMPDIR}/alantrl*
+${PNAME} -i alantrl -f ${REFERENCE}/alantrl.trl -o alantrl -F ${TMPDIR}/alantrl-new.trl
+${PNAME} -i alantrl -f ${TMPDIR}/alantrl-new.trl -o gpx -F ${TMPDIR}/alantrl-new.gpx
+compare ${TMPDIR}/alantrl-new.gpx ${REFERENCE}/alantrl.gpx
 
 exit 0
diff --git a/text.c b/text.c
index c22f37cf7d96680c0517d3b1bd35d2cb0563572f..5bf59ae3f8d25c109c7edd08506112ccd3117f9f 100644 (file)
--- a/text.c
+++ b/text.c
@@ -169,7 +169,7 @@ text_disp(const waypoint *wpt)
                        
                        logpart = xml_findfirst( curlog, "groundspeak:date" );
                        if ( logpart ) {
-                               logtime = xml_parse_time( logpart->cdata );
+                               logtime = xml_parse_time( logpart->cdata, NULL);
                                logtm = localtime( &logtime );
                                if ( logtm ) {
                                        gbfprintf( file_out, 
diff --git a/tiger.c b/tiger.c
index 364e548a0bee9b7806051dc271c927cc5afc9a78..4b0ae83853d0d5b5985ef7004f46197868962126 100644 (file)
--- a/tiger.c
+++ b/tiger.c
@@ -53,7 +53,7 @@ static double thresh_days;
  *   the projection transformations.   Some trig geek can finish that.
  */
 #if CLICKMAP
-static FILE *linkf;
+static gbfile *linkf;
 static char *clickmap = NULL;
 #endif
 
@@ -259,7 +259,7 @@ data_write(void)
                gbfclose(urlf);
 #if CLICKMAP
                if (clickmap) {
-                       linkf = gbfopen(clickmap, "w", MY NAME);
+                       linkf = gbfopen(clickmap, "w", MYNAME);
                        gbfprintf(linkf, "<map name=\"map\">\n");
                        waypt_disp_all(map_plot);
                        gbfprintf(linkf, "</map>\n");
old mode 100644 (file)
new mode 100755 (executable)
index 44fd8bb8474e69962b13ecb015b129aa3f524311..8377e5dbe378989d8a7df45ea8ef3e2bcadaa4a5 100644 (file)
@@ -32,3 +32,11 @@ function getcap(type, cap, sname, lname) {
 
 getcap($1, $2, $3, $5)
 ' > @DOCDIR@capabilities.inc > @DOCDIR@capabilities.inc
+
+FMTS=`./gpsbabel -^2 | grep -v '^internal' | sed 's/\&/\&amp;/' | awk  -F'\t' '{print $3}'`
+for f in $FMTS
+do
+       [ ! -f @DOCDIR@/htmldoc-development/fmt_${f}.html ] && echo Missing doc for $f
+done
+
+exit 0
index b83832c93ce5f2e0a92351d68bf929ce55398c6a..f723b34d793dc8ea6c164a2f032da291fdd79d1c 100644 (file)
@@ -1,10 +1,12 @@
 #!/bin/sh
 #
 
+WEB=$1
+VERSION=$2
+RELEASE=$3
+
 SPEC=gpsbabel.spec
 TAR_IGNORE="--exclude CVS"
-VERSION=$1
-RELEASE=$2
 
 if test -x /usr/bin/rpmbuild; then 
        RPM=rpmbuild
@@ -12,82 +14,39 @@ else
        RPM=rpm
 fi
 
-DIR=`pwd`
-TEMPDIR=/tmp/gpsbabel-rpm.$$
-mkdir -p $TEMPDIR
-trap "cd $DIR; rm -fr $TEMPDIR" 0 1 2 3 15
-
-function addspec()
-{
-       echo "$*" >> $SPEC
-}
-
-# create spec file needed for rpm generation
-function mkspec()
-{
-       local REL=`echo $RELEASE | sed 's/^-//'`
-       test "$REL" == "" && REL=0
-
-       echo -n "" > $SPEC # create the file
-       
-       addspec "Summary:   GPSBabel"
-       addspec "Name:      gpsbabel"
-       addspec "Version:   $VERSION"
-       addspec "Release:   $REL"
-       addspec "License:   GPL"
-       addspec "Group:     File tools"
-       addspec "Source:    %{name}-%{version}.tar.bz2"
-       addspec "BuildRoot: %{_tmppath}/%{name}-%{version}-build"
-       addspec "URL:       http://www.gpsbabel.org"
-       addspec ""
-       
-       addspec "%description"
-       addspec "Converts GPS waypoint, route and track data from one format type to another."
-       addspec ""
-       
-       addspec "Authors:"
-       addspec "--------"
-       
-       cat $DIR/AUTHORS >> gpsbabel.spec
-       
-       addspec ""
-       addspec "%prep"
-       addspec "%setup -q"
-       addspec ""
-       
-       addspec "%build"
-       addspec "./configure"
-       addspec "make"
-       addspec ""
-       addspec "%install"
-       addspec "rm -rf "
-       addspec "mkdir -p %{buildroot}/usr/bin "
-       addspec "install -m 555 gpsbabel %{buildroot}/usr/bin/gpsbabel "
-       addspec ""
-       
-       addspec "%files"
-       addspec "%defattr(-,root,root)"
-       addspec "/usr/bin/gpsbabel"
-       addspec "%doc README* COPYING CHANGELOG AUTHORS readme.xml"
-       addspec ""
-       addspec "%changelog"
-}
-
-cd $TEMPDIR
+test -f gpsbabel.html || exit 1
 
-ln -sf $DIR gpsbabel-$VERSION
-
-mkspec
-
-cat $DIR/../babelweb/changes.html | $DIR/tools/mkchangelog > gpsbabel-$VERSION/CHANGELOG
-cat gpsbabel-$VERSION/CHANGELOG >> gpsbabel.spec
-
-cp gpsbabel.spec gpsbabel-$VERSION/
-rm -f gpsbabel.spec
-
-tar -cj $TAR_IGNORE -f gpsbabel-$VERSION.tar.bz2  gpsbabel-$VERSION/.
-rm -f gpsbabel-$VERSION
-
-${RPM} -ta gpsbabel-$VERSION.tar.bz2
+SRC=`pwd`
+TEMPDIR=/tmp/gpsbabel-rpm.$$
 
-cd $DIR
+mkdir -p $TEMPDIR
+trap "rm -fr $TEMPDIR" 0 1 2 3 15
+
+mkdir -p $TEMPDIR/BUILD $TEMPDIR/RPMS $TEMPDIR/SPECS \
+         $TEMPDIR/SOURCES $TEMPDIR/SRPMS $TEMPDIR/TMP $TEMPDIR/install 
+
+echo "Generate rpm spec file..."
+sh $SRC/tools/mkspec "$WEB" "$VERSION" "$RELEASE" > "$TEMPDIR/SPECS/gpsbabel.spec"
+cp -apr ./ $TEMPDIR/TMP/gpsbabel-$VERSION
+
+# 
+pushd $TEMPDIR/TMP/gpsbabel-$VERSION
+echo "Cleaning source..."
+make more-clean > /dev/null 2>&1
+find . -type d -name CVS -exec rm -rf \{\} \; > /dev/null 2>&1
+find . -type d -name "autom4*" -exec rm -rf \{\} \; > /dev/null 2>&1
+
+echo "Add needed files..."
+cp -ap $SRC/gpsbabel.html ./
+cp -ap $SRC/CHANGELOG ./
+
+echo "Create rpm source tarball..."
+cd ..
+# --verbose 
+tar --owner=0 --group=0 -czf ../SOURCES/gpsbabel-$VERSION.tgz gpsbabel-$VERSION
+echo "And now create rpm packages..."
+${RPM} -ba \
+         --define "_topdir $TEMPDIR" \
+         --define "buildroot $TEMPDIR/install" \
+         $TEMPDIR/SPECS/gpsbabel.spec
+find ../. -type f -name "*.rpm" -exec cp -apf \{\} /tmp/ \;
old mode 100644 (file)
new mode 100755 (executable)
index 7b5cf60a6aa48f4efb683fec29a1263cc6e814f0..3b3a1cbcf2faac99117335ee7ce23f6f6be36811 100644 (file)
@@ -2,7 +2,7 @@
 
     Track manipulation filter
 
-    Copyright (C) 2005 Olaf Klein, o.b.klein@gpsbabel.org
+    Copyright (C) 2005-2006 Olaf Klein, o.b.klein@gpsbabel.org
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     2005-07-26: implemented move option
     2005-07-26: implemented merge option
     2005-07-29: warning fixes
-    2005-08-01: Add 'static' qualifier when we can (RJL)
-    2005-10-04: Add filterdefs to hold protos for filter functions... (RJL)
+    2005-08-01: Add 'static' qualifier when we can (robertl)
+    2005-10-04: Add filterdefs to hold protos for filter functions... (robertl)
     2005-10-04: Fix range-check max. value; exit filter, if no more tracks left
-    2006-04-06: Add fix, course, and speed options
+    2006-04-06: Add fix, course, and speed options (parkrrrr)
     2006-06-01: Add name option
+    2007-01-08: if not really needed disable check for valid timestamps
+               (based on patch from Vladimir Kondratiev)
  */
  
 #include <ctype.h>
@@ -119,6 +121,7 @@ static int track_ct = 0;
 static int track_pts = 0;
 static int opt_interval = 0;
 static int opt_distance = 0;
+static char need_time;         /* initialized within trackfilter_init */
 
 /*******************************************************************************
 * helpers
@@ -251,8 +254,8 @@ trackfilter_fill_track_list_cb(const route_head *track)     /* callback for track_d
            track_pts++;
            
            wpt = (waypoint *)elem;
-           if (wpt->creation_time == 0)
-               fatal(MYNAME "-init: Found track point without time!\n");
+           is_fatal((need_time != 0) && (wpt->creation_time == 0),
+               MYNAME "-init: Found track point without time!");
 
            i++;
            if (i == 1) 
@@ -261,7 +264,7 @@ trackfilter_fill_track_list_cb(const route_head *track)     /* callback for track_d
            if (i == track->rte_waypt_ct)
                track_list[track_ct].last_time = wpt->creation_time;
                
-           if ((prev != NULL) && (prev->creation_time > wpt->creation_time))
+           if ((need_time != 0) && (prev != NULL) && (prev->creation_time > wpt->creation_time))
            {
                if (opt_merge == NULL)
                    fatal(MYNAME "-init: Track points badly ordered (timestamp)!\n");
@@ -425,6 +428,7 @@ trackfilter_merge(void)
                wpt = (waypoint *)elem;
                buff[j++] = waypt_dupe(wpt);
                track_del_wpt(track, wpt);
+               waypt_free(wpt);
            }
            if (track != master)                /* i > 0 */
                track_del_head(track);
@@ -471,8 +475,8 @@ trackfilter_split(void)
        waypoint *wpt;
        queue *elem, *tmp;
        int i, j;
-       float interval = -1;
-       float distance = -1; 
+       double interval = -1;
+       double distance = -1; 
 
        if (count <= 1) return;
 
@@ -483,7 +487,7 @@ trackfilter_split(void)
 
        if (opt_interval != 0)
        {
-           float  base;
+           double base;
            char   unit;
            
            switch(strlen(opt_split))
@@ -498,11 +502,11 @@ trackfilter_split(void)
                    break;
                    
                default:
-                   i = sscanf(opt_split,"%f%c", &interval, &unit);
+                   i = sscanf(opt_split,"%lf%c", &interval, &unit);
                    if (i == 0) 
                    {
                        /* test reverse order */
-                       i = sscanf(opt_split,"%c%f", &unit, &interval);
+                       i = sscanf(opt_split,"%c%lf", &unit, &interval);
                    }
                    if ((i != 2) || (interval <= 0))
                    {
@@ -537,7 +541,7 @@ trackfilter_split(void)
 
        if (opt_distance != 0)
        {
-           float  base;
+           double base;
            char   unit;
            
            switch(strlen(opt_sdistance))
@@ -552,11 +556,11 @@ trackfilter_split(void)
                    break;
                    
                default:
-                   i = sscanf(opt_sdistance,"%f%c", &distance, &unit);
+                   i = sscanf(opt_sdistance,"%lf%c", &distance, &unit);
                    if (i == 0) 
                    {
                        /* test reverse order */
-                       i = sscanf(opt_sdistance,"%c%f", &unit, &distance);
+                       i = sscanf(opt_sdistance,"%c%lf", &unit, &distance);
                    }
                    if ((i != 2) || (distance <= 0))
                    {
@@ -636,7 +640,7 @@ trackfilter_split(void)
                
                if (interval > 0)
                {
-                   float tr_interval = difftime(buff[j]->creation_time,buff[i]->creation_time);
+                   double tr_interval = difftime(buff[j]->creation_time,buff[i]->creation_time);
                    if ( tr_interval <= interval ) 
                        new_track_flag = 0;
 #ifdef TRACKF_DBG
@@ -657,8 +661,8 @@ trackfilter_split(void)
            }
            if (curr != NULL)
            {
-               wpt = waypt_dupe(buff[j]);
-               track_del_wpt(master, buff[j]);
+               wpt = buff[j];
+               track_del_wpt(master, wpt);
                track_add_wpt(curr, wpt);
                buff[j] = wpt;
            }
@@ -820,6 +824,7 @@ trackfilter_range(void)             /* returns number of track points left after filtering
                if ((wpt->creation_time < start) || (wpt->creation_time > stop))
                {
                    track_del_wpt(track, wpt);
+                   waypt_free(wpt);
                    dropped++;
                }
            }
@@ -847,6 +852,21 @@ trackfilter_init(const char *args)
 
        int count = track_count();
 
+/*
+ * check time presence only if required. Options that NOT require time:
+ *
+ * - opt_title (!!! only if no format specifier is present !!!)
+ * - opt_course
+ * - opt_name
+ */
+       need_time = ( 
+           opt_merge || opt_pack || opt_split || opt_sdistance ||
+           opt_move || opt_start || opt_stop || opt_fix || opt_speed ||
+           (trackfilter_opt_count() == 0)      /* do pack by default */
+       );
+       /* in case of a formated title we also need valid timestamps */
+       if ((opt_title != NULL) && (strchr(opt_title, '%') != NULL)) need_time = 1;
+       
        track_ct = 0;
        track_pts = 0;
        
@@ -857,7 +877,8 @@ trackfilter_init(const char *args)
            /* check all tracks for time and order (except merging) */
        
            track_disp_all(trackfilter_fill_track_list_cb, NULL, NULL);
-           qsort(track_list, track_ct, sizeof(*track_list), trackfilter_init_qsort_cb);
+           if (need_time)
+               qsort(track_list, track_ct, sizeof(*track_list), trackfilter_init_qsort_cb);
        }
 }
 
index c52843c3267759390fd7882190fb630de4843c49..9d47f436086bb9894ba0580956c473d6800c1772 100644 (file)
@@ -98,7 +98,12 @@ static void
 transform_any_disp_wpt_cb(const waypoint *wpt)
 {
        waypoint *temp = waypt_dupe(wpt);
-       waypt_add(temp);
+       if (current_target == 'R')
+               route_add_wpt(current_rte, temp);
+       else if (current_target == 'T')
+               track_add_wpt(current_trk, temp);
+       else
+               waypt_add(temp);
 }
 
 static void
index 3bd2ea1b1f26ad7c743c21e8bcbc0a29a3231de4..edef30b1af181583f976b8ccb3b813e59ff7fca4 100644 (file)
--- a/unicsv.c
+++ b/unicsv.c
@@ -41,6 +41,7 @@ struct {
        int utmzcol; /* Zone */
        int utmncol; /* Northing */
        int utmecol; /* Easting */
+       int utmccol; /* Zone character */
 } unicsv_fieldpos;
 
 static double unicsv_altscale;
@@ -53,7 +54,7 @@ arglist_t unicsv_args[] = {
 
 /* helpers */
 
-#define UNICSV_IS(f) (0 == strcmp(s, f))
+// #define UNICSV_IS(f) (0 == strcmp(s, f))
 #define UNICSV_CONTAINS(f) (0 != strstr(s, f))
 
 static void
@@ -88,13 +89,13 @@ unicsv_fondle_header(char *ibuf)
                if (UNICSV_CONTAINS("lat")) {
                        unicsv_fieldpos.latcol = i;
                }
-               else if (UNICSV_IS("lon") || UNICSV_CONTAINS("long")) {
+               else if (UNICSV_CONTAINS("lon")) {
                        unicsv_fieldpos.loncol = i;
                }
                else if (UNICSV_CONTAINS("desc")) {
                        unicsv_fieldpos.desccol = i;
                }
-               else if (UNICSV_IS("name")) {
+               else if (UNICSV_CONTAINS("name")) {
                        unicsv_fieldpos.namecol = i;
                }
                else if (UNICSV_CONTAINS("notes")) {
@@ -118,6 +119,9 @@ unicsv_fondle_header(char *ibuf)
                else if (UNICSV_CONTAINS("utm e")) {
                        unicsv_fieldpos.utmecol = i;
                }
+               else if (UNICSV_CONTAINS("utm c")) {
+                       unicsv_fieldpos.utmccol = i;
+               }
 /* todo: speed, course, hdop, sat, date, time, maybe a few others */
        }
 }
@@ -151,6 +155,7 @@ unicsv_parse_one_line(char *ibuf)
        int  utmz = -9999;
        double utme = 0;
        double utmn = 0;
+       char utmc = 'N';
 
        s = csv_lineparse(ibuf, unicsv_fieldsep, "\"", 0);
        if (s == NULL) return;
@@ -158,6 +163,7 @@ unicsv_parse_one_line(char *ibuf)
        wpt = waypt_new();
 
        for (i=0; s; i++, s = csv_lineparse(NULL, unicsv_fieldsep, "\"", 0)) {
+               s = lrtrim(s);
                if (i == unicsv_fieldpos.latcol) {
                        human_to_dec( s, &wpt->latitude, &wpt->longitude, 1 );
                }
@@ -188,10 +194,13 @@ unicsv_parse_one_line(char *ibuf)
                else if (i == unicsv_fieldpos.utmncol) {
                        utmn = atof(s);
                }
+               else if (i == unicsv_fieldpos.utmccol) {
+                       utmc = toupper(s[0]);
+               }
        }
        if (utmz  != -9999) {
                GPS_Math_UTM_EN_To_WGS84(&wpt->latitude, &wpt->longitude,
-                       utme, utmn, utmz, 'N');
+                       utme, utmn, utmz, utmc);
        }
        waypt_add(wpt);
 }
diff --git a/util.c b/util.c
index 9fa0214596445da910c8bb524df6845a2bc7b141..1af7d25e629c4d83ad9b1a0de8cdbab63e228adf 100644 (file)
--- a/util.c
+++ b/util.c
@@ -288,19 +288,29 @@ xfputs(const char *errtxt, const char *s, FILE *stream)
 
 /*
  * Allocate a string using a format list with optional arguments
+ * Returns -1 on error.
+ * If return value is anything else, *strp will be populated with an
+ * allocated string containging the formatted buffer.
+ * 
+ * Freeing that is the responsbility of the caller.
  */
 
 int
-xvasprintf(char **strp, const char *fmt, va_list args)
+xasprintf(char **strp, const char *fmt, ...)
 {
-       /* From http://perfec.to/vsnprintf/pasprintf.c */
+/* From http://perfec.to/vsnprintf/pasprintf.c */
 /* size of first buffer malloc; start small to exercise grow routines */
-#define        FIRSTSIZE       64
+#ifdef DEBUG_MEM
+# define       FIRSTSIZE       64
+#else
+# define       FIRSTSIZE       1
+#endif
        char *buf = NULL;
        int bufsize;
        char *newbuf;
        size_t nextsize = 0;
        int outsize;
+       va_list args;
 
        bufsize = 0;
        for (;;) {
@@ -309,7 +319,7 @@ xvasprintf(char **strp, const char *fmt, va_list args)
                                *strp = NULL;
                                return -1;
                        }
-                       bufsize = 1;
+                       bufsize = FIRSTSIZE;
                } else if ((newbuf = xrealloc(buf, nextsize)) != NULL) {
                        buf = newbuf;
                        bufsize = nextsize;
@@ -319,8 +329,10 @@ xvasprintf(char **strp, const char *fmt, va_list args)
                        return -1;
                }
 
+               va_start(args, fmt);
                outsize = vsnprintf(buf, bufsize, fmt, args);
-
+               va_end(args);
+               
                if (outsize == -1) {
                        /* Clear indication that output was truncated, but no
                         * clear indication of how big buffer needs to be, so
@@ -357,22 +369,16 @@ xvasprintf(char **strp, const char *fmt, va_list args)
                        break;
                }
        }
-       *strp = buf;
-       return 0;
-}
+       /* Prevent us from allocating millions of unused bytes. */
+       /* O.K.: I think this is not the final solution. */
+       if (bufsize > outsize + 1) {
+               const unsigned ptrsz = sizeof(buf);
+               if (((bufsize + ptrsz + 1) / ptrsz) > ((outsize + ptrsz + 1) / ptrsz))
+                       buf = xrealloc(buf, outsize + 1);       
 
-int
-xasprintf(char **strp, const char *fmt, ...)
-{
-       va_list args;
-       int rval;
-
-       va_start(args, fmt);
-       rval = xvasprintf(strp, fmt, args);
-       va_end(args);
-
-       return rval;
-       
+       }
+       *strp = buf;
+       return outsize;
 }
 
 /* 
@@ -418,6 +424,9 @@ lrtrim(char *buff)
 {
        char *c;
 
+       if (buff[0] == '\0')
+               return buff;
+
        c = buff + strlen(buff);
        while ((c >= buff) && ((unsigned char)*c <= ' ')) *c-- = '\0';
 
@@ -830,7 +839,7 @@ month_lookup(const char *m)
 const char *
 get_cache_icon(const waypoint *waypointp)
 {
-       if (global_opts.no_smart_icons)
+       if (!global_opts.smart_icons)
                return NULL;
 
        /*
@@ -884,6 +893,29 @@ endian_read_double(void* ptr, int read_le)
   return ret;
 }
 
+float
+endian_read_float(void* ptr, int read_le)
+{
+  float ret;
+  char r[4];
+  void *p;
+  int i;
+  
+  if ( i_am_little_endian == read_le ) {
+         p = ptr;
+  }
+  else {
+         for (i = 0; i < 4; i++)
+         {
+               r[i] = ((char*)ptr)[3-i];
+         }
+         p = r;
+  }
+  
+  memcpy(&ret, p, 4);
+  return ret;
+}
+
 void
 endian_write_double(void* ptr, double d, int write_le)
 {
@@ -902,24 +934,49 @@ endian_write_double(void* ptr, double d, int write_le)
   }
 }
 
-double
-pdb_read_double( void *ptr ) {return endian_read_double(ptr, 0);}
+void
+endian_write_float(void* ptr, float f, int write_le)
+{
+  char *r = (char *)(void *)&f;
+  int i;
+  char *optr = ptr;
 
-double 
-le_read_double( void *ptr ) {return endian_read_double(ptr,1);}
+  if ( i_am_little_endian == write_le ) {
+         memcpy( ptr, &f, 4);
+  }
+  else {
+         for (i = 0; i < 4; i++)
+         {
+               *optr++ = r[3-i];
+         }
+  }
+}
 
-double 
-be_read_double( void *ptr ) {return endian_read_double(ptr,0);}
+float
+le_read_float( void *ptr ) {return endian_read_float(ptr, 1);}
 
 void
-pdb_write_double( void *ptr, double d ) {endian_write_double(ptr,d,0);}
+le_write_float( void *ptr, float f ) {endian_write_float(ptr,f,1);}
+
+float
+be_read_float( void *ptr ) {return endian_read_float(ptr, 0);}
+
+void
+be_write_float( void *ptr, float f ) {endian_write_float(ptr,f,0);}
+
+double 
+le_read_double( void *ptr ) {return endian_read_double(ptr,1);}
 
 void
 le_write_double( void *ptr, double d ) {endian_write_double(ptr,d,1);}
 
-void 
+double 
+be_read_double( void *ptr ) {return endian_read_double(ptr,0);}
+
+void
 be_write_double( void *ptr, double d ) {endian_write_double(ptr,d,0);}
 
+
 /* Magellan and PCX formats use this DDMM.mm format */
 double ddmm2degrees(double pcx_val) {
        double minutes;
@@ -1570,3 +1627,17 @@ char *xml_attribute( xml_tag *tag, char *attrname )
        }
        return result;
 }
+
+char *get_filename(const char *fname)
+{
+       char *res, *cb, *cs;
+       
+       cb = strrchr(fname, '\\');
+       cs = strrchr(fname, '/');
+       
+       if (cb == NULL) res = cs;
+       else if (cs == NULL) res = cb;
+       else res = (cs > cb) ? cs : cb;
+       
+       return (res == NULL) ? (char *) fname : ++res;
+}
diff --git a/vcf.c b/vcf.c
index 5ba4608eff66a995bd5c384d9ae66f6cba81814e..05c6a752a918fc770a611a3a27cff6b0dc2608f9 100644 (file)
--- a/vcf.c
+++ b/vcf.c
@@ -23,7 +23,7 @@
 #include "jeeps/gpsmath.h"
 #include <ctype.h>
 
-static FILE *file_out;
+static gbfile *file_out;
 static short_handle mkshort_handle;
 
 static char *vcf_encrypt = NULL;
@@ -40,14 +40,14 @@ arglist_t vcf_args[] = {
 static void
 wr_init(const char *fname)
 {
-       file_out = xfopen(fname, "w", MYNAME);
+       file_out = gbfopen(fname, "w", MYNAME);
        mkshort_handle = mkshort_new_handle();
 }
 
 static void
 wr_deinit(void)
 {
-       fclose(file_out);
+       gbfclose(file_out);
        mkshort_del_handle(&mkshort_handle);
 }
 
@@ -67,7 +67,7 @@ vcf_print_utf(const utf_string *s)
        stripped_html = strip_html(s);
        p = gstrsub(stripped_html, "\n", "\\n");
        p2 = gstrsub(p, "<p>", "\\n");
-       fputs(p2, file_out);
+       gbfputs(p2, file_out);
        xfree(p);
        xfree(p2);
        xfree(stripped_html);
@@ -82,7 +82,7 @@ vcf_print(const char *s)
                return;
 
        p = gstrsub(s, "\n", "\\n");
-       fputs(p, file_out);
+       gbfputs(p, file_out);
        xfree(p);
 }
 
@@ -94,19 +94,19 @@ vcf_disp(const waypoint *wpt)
        lonint = abs((int) wpt->longitude);
        latint = abs((int) wpt->latitude);
 
-       fprintf(file_out, "BEGIN:VCARD\nVERSION:3.0\n");
-       fprintf(file_out, "N:%s;%s;;;\n", wpt->description,wpt->shortname);
-       fprintf(file_out, "ORG:%c%d %06.3f %c%d %06.3f\n", wpt->latitude < 0 ? 'S' : 'N',  abs(latint), 60.0 * (fabs(wpt->latitude) - latint), wpt->longitude < 0 ? 'W' : 'E', abs(lonint), 60.0 * (fabs(wpt->longitude) - lonint));
+       gbfprintf(file_out, "BEGIN:VCARD\nVERSION:3.0\n");
+       gbfprintf(file_out, "N:%s;%s;;;\n", wpt->description,wpt->shortname);
+       gbfprintf(file_out, "ORG:%c%d %06.3f %c%d %06.3f\n", wpt->latitude < 0 ? 'S' : 'N',  abs(latint), 60.0 * (fabs(wpt->latitude) - latint), wpt->longitude < 0 ? 'W' : 'E', abs(lonint), 60.0 * (fabs(wpt->longitude) - lonint));
 
        if (wpt->url) {
-               fprintf(file_out, "URL:%s\n", wpt->url);
+               gbfprintf(file_out, "URL:%s\n", wpt->url);
        }
 
-       fprintf(file_out, "NOTE:");
+       gbfprintf(file_out, "NOTE:");
        vcf_print_utf(&wpt->gc_data.desc_short);
-       fprintf(file_out, "\\n");
+       gbfprintf(file_out, "\\n");
        vcf_print_utf(&wpt->gc_data.desc_long);
-       fprintf(file_out, "\\n\\nHINT:\\n");
+       gbfprintf(file_out, "\\n\\nHINT:\\n");
        if (vcf_encrypt) {
                char *s = rot13(wpt->gc_data.hint);
                vcf_print(s);
@@ -115,7 +115,7 @@ vcf_disp(const waypoint *wpt)
                vcf_print(wpt->gc_data.hint);
        }
 
-       fprintf(file_out, "\nEND:VCARD\n");
+       gbfprintf(file_out, "\nEND:VCARD\n");
 }
 
 static void
diff --git a/vecs.c b/vecs.c
index 7d3befe36360924aeb143e66cbae2507a870b5fa..45c2689b9729ed503a1d81dda7023d5acbab90b6 100644 (file)
--- a/vecs.c
+++ b/vecs.c
@@ -111,6 +111,9 @@ extern ff_vecs_t wbt_svecs;
 extern ff_vecs_t wbt_fvecs;
 extern ff_vecs_t gtc_vecs;
 extern ff_vecs_t dmtlog_vecs;
+extern ff_vecs_t raymarine_vecs;
+extern ff_vecs_t alanwpr_vecs;
+extern ff_vecs_t alantrl_vecs;
 
 static
 vecs_t vec_list[] = {
@@ -316,6 +319,8 @@ vecs_t vec_list[] = {
                "ESRI shapefile",
                "shp"
        },
+#endif
+#if PDBFMTS_ENABLED
        {
                &geoniche_vecs,
                "geoniche",
@@ -607,6 +612,24 @@ vecs_t vec_list[] = {
                "TrackLogs digital mapping (.trl)",
                "trl"
        },
+       {
+               &raymarine_vecs,
+               "raymarine",
+               "Raymarine Waypoint File (.rwf)",
+               "rwf"
+       },
+        {
+                &alanwpr_vecs,
+                "alanwpr",
+                "Alan Map500 waypoints and routes (.wpr)",
+                "wpr"
+        },
+        {
+                &alantrl_vecs,
+                "alantrl",
+                "Alan Map500 tracklogs (.trl)",
+                "trl"
+        },
        {
                NULL,
                NULL,
@@ -953,7 +976,17 @@ sort_and_unify_vecs(int *ctp)
                         */
                        svp[i]->vec->args++;
                }
-               
+               memset(&svp[i]->vec->cap, 0, sizeof(svp[i]->vec->cap));
+               switch(xcsv_file.datatype) {
+                       case 0:
+                       case wptdata:
+                               svp[i]->vec->cap[ff_cap_rw_wpt] = ff_cap_read | ff_cap_write; break;
+                       case trkdata:
+                               svp[i]->vec->cap[ff_cap_rw_trk] = ff_cap_read | ff_cap_write; break;
+                       case rtedata:
+                               svp[i]->vec->cap[ff_cap_rw_rte] = ff_cap_read | ff_cap_write; break;
+                       default: ;
+               }
                svp[i]->desc = xcsv_file.description;
                svp[i]->parent = "xcsv";
        }
index 4a9bedf64efe0aaae6fe7c743bbf1f519e11694b..e1ee16fbff6cc6ecc860ab177fefa5d640348b97 100644 (file)
--- a/vitosmt.c
+++ b/vitosmt.c
@@ -183,8 +183,7 @@ vitosmt_read(void)
                tmStruct.tm_isdst       =-1;
 
                wpt_tmp->creation_time = mkgmtime(&tmStruct);
-               wpt_tmp->centiseconds = fmod(100*seconds+0.5,100);
-       
+               wpt_tmp->microseconds = fmod(1000000*seconds+0.5,1000000);
                wpt_tmp->shortname      =xcalloc(16,1);
                snprintf(wpt_tmp->shortname, 15 , "WP%04d", ++serial);
 
@@ -274,7 +273,7 @@ vitosmt_waypt_pr(const waypoint *waypointp)
        position += sizeof(double);
 
        tmstructp =  gmtime(&waypointp->creation_time);
-       seconds = (double) tmstructp->tm_sec + 0.01*waypointp->centiseconds;
+       seconds = (double) tmstructp->tm_sec + 0.0000001*waypointp->microseconds;
 
        workbuffer[position++]  =tmstructp->tm_year-100;
        workbuffer[position++]  =tmstructp->tm_mon+1;
diff --git a/waypt.c b/waypt.c
index 57985ed228da28b07e4443e4a490e5ebd736edce..f58179c776684a74ac858b19e363f126f70b2d5d 100644 (file)
--- a/waypt.c
+++ b/waypt.c
@@ -75,7 +75,7 @@ waypt_dupe(const waypoint *wpt)
         * It's important that this duplicated waypoint not appear
         * on the master Q.
         */
-       tmp->Q.next = tmp->Q.prev = NULL;
+       QUEUE_INIT(&tmp->Q);
        tmp->fs = fs_chain_copy( wpt->fs );
 
        return tmp;
@@ -145,6 +145,7 @@ waypt_new(void)
        wpt->fix = fix_unknown;
        wpt->sat = -1;
 
+       QUEUE_INIT(&wpt->Q);
        return wpt;
 }
 
index e497c619cabfedc5158dd3f231a0fd57aa2e34cb..66344fa745875d75957af1b37ebd08c1ebf5abbb 100644 (file)
--- a/wbt-200.c
+++ b/wbt-200.c
@@ -392,7 +392,6 @@ static int data_chunk(struct read_state *st, const void *buf, int fmt) {
                wpt->longitude      = lon;
                wpt->altitude       = alt;
                wpt->creation_time  = rtim;
-               wpt->centiseconds   = 0;
 
                sprintf(wp_name, "WP%04d", ++st->wpn);
                wpt->shortname      = xstrdup(wp_name);
index a8177a58138b73e6c0668cf74a9925dcd6873e74..4259cdca4d6dbc1b09abbe8e5d86877df47503fc 100644 (file)
@@ -153,7 +153,7 @@ void wfff_chan(const char *args, const char **unused)
 void wfff_first(const char *args, const char **unused)
 {
        if (args) {
-               ap_first = xml_parse_time(args);
+               ap_first = xml_parse_time(args, NULL);
        }
 }
 
index 044c408bb8401bcb7a509fe450ff109917e10478..38736b461617069d1e556cc4aead399b4eba8b03 100644 (file)
Binary files a/win32/GPSBabelGUI.exe and b/win32/GPSBabelGUI.exe differ
index 57845625aa50ac8a9a1d417362b42d814e0b5cbc..b9cfeeae4aa083f6571db8ea385206c0de4aadeb 100644 (file)
@@ -57,7 +57,7 @@ AutoIncBuild=0
 MajorVer=0\r
 MinorVer=2\r
 Release=6\r
-Build=0\r
+Build=1\r
 Debug=0\r
 PreRelease=0\r
 Special=0\r
@@ -68,7 +68,7 @@ CodePage=1252
 [Version Info Keys]\r
 CompanyName=GPSBabel Makers\r
 FileDescription=GPSBabel Windows Frontend\r
-FileVersion=0.2.6.0\r
+FileVersion=0.2.6.1\r
 InternalName=\r
 LegalCopyright=(C) 2005,2006 Olaf Klein (o.b.klein@gpsbabel.org)\r
 LegalTrademarks=\r
index 83433c273d6c3ce4adca00f23c712ceb2a1b5d56..31c9dfc393cb789cc4a4c517c438a59b4cbb15f8 100644 (file)
Binary files a/win32/gui-2/GPSBabelGUI.res and b/win32/gui-2/GPSBabelGUI.res differ
index 53766bae63bb5b12b1e91b62dcf0465a08a2644f..c7b21a61e0bb448de60ea0297fae4703090473a3 100644 (file)
Binary files a/win32/gui-2/filter.dfm and b/win32/gui-2/filter.dfm differ
index 9b5b07614162f99c04ee0809755d9e1c73c04312..396e947e59d84142fb39f07a461678db652dba1a 100644 (file)
@@ -65,7 +65,7 @@ type
     cbReverse: TCheckBox;\r
     cbWayptMergeDupNames: TCheckBox;\r
     cbWayptMergeDistance: TCheckBox;\r
-    cobWayptMergeDist: TComboBox;\r
+    cobWayptMergeDistUnit: TComboBox;\r
     edWayptMergeDist: TEdit;\r
     cbWayptSort: TCheckBox;\r
     cbWayptMergeDups: TCheckBox;\r
@@ -75,20 +75,21 @@ type
     BitBtn1: TBitBtn;\r
     cbWayptRadius: TCheckBox;\r
     edWayptRadius: TEdit;\r
-    cobWayptRadius: TComboBox;\r
+    cobWayptRadiusUnit: TComboBox;\r
     lbWayptRadiusLat: TLabel;\r
     lbWayptRadiusLon: TLabel;\r
     edWayptRadiusLat: TEdit;\r
     edWayptRadiusLon: TEdit;\r
     cbTrackRangeTimeZone: TCheckBox;\r
     btnHelp: TBitBtn;\r
-    cbTrackFixes: TCheckBox;\r
+    cbGPSfix: TCheckBox;\r
     cbTrackCourse: TCheckBox;\r
     cbTrackSpeed: TCheckBox;\r
     gbTransform: TGroupBox;\r
-    cobTransform: TComboBox;\r
+    cobTransformType: TComboBox;\r
     cbTransform: TCheckBox;\r
     cbTransformDelete: TCheckBox;\r
+    cobGPSfixes: TComboBox;\r
     procedure cbTrackTimeClick(Sender: TObject);\r
     procedure FormCreate(Sender: TObject);\r
     procedure cbTrackTitleClick(Sender: TObject);\r
@@ -107,6 +108,7 @@ type
       Shift: TShiftState);\r
     procedure btnHelpClick(Sender: TObject);\r
     procedure cbTransformClick(Sender: TObject);\r
+    procedure cbGPSfixClick(Sender: TObject);\r
   private\r
     { Private-Deklarationen }\r
     lTrackTimeList: TList;\r
@@ -174,14 +176,14 @@ var
 begin\r
   TranslateComponent(SELF);\r
 \r
-  cobTransform.Items.Clear;\r
-  cobTransform.Items.Add(_('Waypoints') + ' -> ' + _('Routes'));\r
-  cobTransform.Items.Add(_('Routes') + ' -> ' + _('Waypoints'));\r
-  cobTransform.Items.Add(_('Routes') + ' -> ' + _('Tracks'));\r
-  cobTransform.Items.Add(_('Tracks') + ' -> ' + _('Routes'));\r
-  cobTransform.Items.Add(_('Waypoints') + ' -> ' + _('Tracks'));\r
-  cobTransform.Items.Add(_('Tracks') + ' -> ' + _('Waypoints'));\r
-  cobTransform.ItemIndex := 0;\r
+  cobTransformType.Items.Clear;\r
+  cobTransformType.Items.Add(_('Waypoints') + ' -> ' + _('Routes'));\r
+  cobTransformType.Items.Add(_('Routes') + ' -> ' + _('Waypoints'));\r
+  cobTransformType.Items.Add(_('Routes') + ' -> ' + _('Tracks'));\r
+  cobTransformType.Items.Add(_('Tracks') + ' -> ' + _('Routes'));\r
+  cobTransformType.Items.Add(_('Waypoints') + ' -> ' + _('Tracks'));\r
+  cobTransformType.Items.Add(_('Tracks') + ' -> ' + _('Waypoints'));\r
+  cobTransformType.ItemIndex := 0;\r
 \r
   CurrentTime := SysUtils.Now;\r
   dtpTrackStartDate.DateTime := Int(CurrentTime);\r
@@ -212,20 +214,20 @@ begin
   FixPosition(udTimeSeconds, edTrackTimeSeconds, False);\r
   FixPosition(lbTimeSeconds, udTimeSeconds, True);\r
 \r
-  FixPosition(lbWayptRadiusLat, cobWayptRadius, True);\r
+  FixPosition(lbWayptRadiusLat, cobWayptRadiusUnit, True);\r
   FixPosition(edWayptRadiusLat, lbWayptRadiusLat, True);\r
   FixPosition(lbWayptRadiusLon, edWayptRadiusLat, True);\r
   FixPosition(edWayptRadiusLon, lbWayptRadiusLon, True);\r
 \r
   // will not be translated, fill by hand\r
 \r
-  cobWayptMergeDist.Items.Add(_('Feet'));\r
-  cobWayptMergeDist.Items.Add(_('Meter'));\r
-  cobWayptMergeDist.ItemIndex := 0;\r
+  cobWayptMergeDistUnit.Items.Add(_('Feet'));\r
+  cobWayptMergeDistUnit.Items.Add(_('Meter'));\r
+  cobWayptMergeDistUnit.ItemIndex := 0;\r
 \r
-  cobWayptRadius.Items.Add(_('Miles'));\r
-  cobWayptRadius.Items.Add(_('Kilometer'));\r
-  cobWayptRadius.ItemIndex := 0;\r
+  cobWayptRadiusUnit.Items.Add(_('Miles'));\r
+  cobWayptRadiusUnit.Items.Add(_('Kilometer'));\r
+  cobWayptRadiusUnit.ItemIndex := 0;\r
 \r
   dtpTrackStopTime.Time := 1 - (1.0 / (24*60*60));\r
 \r
@@ -241,9 +243,10 @@ begin
 \r
   if not(gpsbabel_knows_inifile) then\r
   begin\r
-    cbTrackFixes.Enabled := False;\r
+    cbGPSfix.Enabled := False;\r
     cbTrackCourse.Enabled := False;\r
     cbTrackSpeed.Enabled := False;\r
+    cobGPSfixes.Enabled := False;\r
   end;\r
 \r
   LoadSettingsFromRegistry();\r
@@ -334,7 +337,7 @@ begin
   if gbTransform.Enabled and cbTransform.Checked then\r
   begin\r
     Result := Format('%s -x %s', [Result, 'transform,']);\r
-    case cobTransform.ItemIndex of\r
+    case cobTransformType.ItemIndex of\r
       0: Result := Result + 'rte=wpt';\r
       1: Result := Result + 'wpt=rte';\r
       2: Result := Result + 'trk=rte';\r
@@ -360,14 +363,14 @@ begin
     if cbWayptMergeDistance.Checked then\r
     begin\r
       Result := Format('%s -x position,distance=%s', [Result, edWayptMergeDist.Text]);\r
-      if (cobWayptMergeDist.ItemIndex = 0) then\r
+      if (cobWayptMergeDistUnit.ItemIndex = 0) then\r
         Result := Result + 'f' else\r
         Result := Result + 'm';\r
     end;\r
     if cbWayptRadius.Checked then\r
     begin\r
       Result := Format('%s -x radius,distance=%s', [Result, edWayptRadius.Text]);\r
-      if (cobWayptRadius.ItemIndex = 0) then\r
+      if (cobWayptRadiusUnit.ItemIndex = 0) then\r
         Result := Result + 'M' else\r
         Result := Result + 'K';\r
       Result := Format('%s,lat=%s,lon=%s', [Result, edWayptRadiusLat.Text, edWayptRadiusLon.Text]);\r
@@ -421,8 +424,8 @@ begin
         Result,\r
         FormatDateTime('yyyymmddhhnnss', dt)]);\r
     end;\r
-    if cbTrackFixes.Checked then\r
-      Result := Format('%s,fix', [Result]);\r
+    if cbGPSfix.Checked then\r
+      Result := Format('%s,fix=%s', [Result, cobGPSfixes.Text]);\r
     if cbTrackCourse.Checked then\r
       Result := Format('%s,course', [Result]);\r
     if cbTrackSpeed.Checked then\r
@@ -515,7 +518,7 @@ end;
 procedure TfrmFilter.cbWayptMergeDistanceClick(Sender: TObject);\r
 begin\r
   edWayptMergeDist.Enabled := cbWayptMergeDistance.Checked;\r
-  cobWayptMergeDist.Enabled := cbWayptMergeDistance.Checked;\r
+  cobWayptMergeDistUnit.Enabled := cbWayptMergeDistance.Checked;\r
 end;\r
 \r
 procedure TfrmFilter.cbWayptMergeDupsClick(Sender: TObject);\r
@@ -527,7 +530,7 @@ end;
 procedure TfrmFilter.cbWayptRadiusClick(Sender: TObject);\r
 begin\r
   edWayptRadius.Enabled := cbWayptRadius.Checked;\r
-  cobWayptRadius.Enabled := cbWayptRadius.Checked;\r
+  cobWayptRadiusUnit.Enabled := cbWayptRadius.Checked;\r
   edWayptRadiusLat.Enabled := cbWayptRadius.Checked;\r
   edWayptRadiusLon.Enabled := cbWayptRadius.Checked;\r
 end;\r
@@ -543,8 +546,8 @@ begin
   end;\r
   CanClose :=\r
     ValidateNumerical(edWayptRadius, 0, 99999) and\r
-    ValidateNumerical(edWayptRadiusLat, -180, 180) and\r
-    ValidateNumerical(edWayptRadiusLon, -90, 90) and\r
+    ValidateNumerical(edWayptRadiusLat, -90, 90) and\r
+    ValidateNumerical(edWayptRadiusLon, -180, 180) and\r
     ValidateNumerical(edWayptMergeDist, 0, 99999999) and\r
     ValidateNumerical(edRoutesSimplifyMaxPoints, 1, 9999);\r
   ChangeCheckBoxesChecked(Self, False);\r
@@ -673,7 +676,9 @@ begin
       if (c is TCheckbox) then\r
         r.WriteBool('filter:' + Copy(c.Name, 3, 256), TCheckBox(c).Checked)\r
       else if (c is TEdit) then\r
-        r.WriteString('filter:' + Copy(c.Name, 3, 256), TEdit(c).Text);\r
+        r.WriteString('filter:' + Copy(c.Name, 3, 256), TEdit(c).Text)\r
+      else if (c is TCombobox) then\r
+        r.WriteString('filter:' + Copy(c.Name, 4, 256), IntToStr(TCombobox(c).ItemIndex));\r
     end;\r
   finally\r
     r.Free;\r
@@ -687,7 +692,7 @@ var
   r: TRegistry;\r
   s: string;\r
   u: TUpDown;\r
-  \r
+\r
   function ReadString(R: TRegistry; const Key, Def: string): string;\r
   begin\r
     if R.ValueExists(Key) then\r
@@ -715,6 +720,11 @@ begin
             u.Position := StrToInt(s)\r
           else\r
             TEdit(c).Text := s;\r
+        end\r
+        else if (c is TCombobox) then\r
+        begin\r
+          s := ReadString(r, 'filter:' + Copy(c.Name, 4, 256), '0');\r
+          TCombobox(c).ItemIndex := StrToIntDef(s, 0);\r
         end;\r
       except\r
         on E: Exception do ;\r
@@ -727,7 +737,12 @@ end;
 \r
 procedure TfrmFilter.cbTransformClick(Sender: TObject);\r
 begin\r
-  cobTransform.Enabled := cbTransform.Checked;\r
+  cobTransformType.Enabled := cbTransform.Checked;\r
+end;\r
+\r
+procedure TfrmFilter.cbGPSfixClick(Sender: TObject);\r
+begin\r
+  cobGPSfixes.Enabled := cbGPSfix.Checked;\r
 end;\r
 \r
 end.\r
diff --git a/win32/gui-2/locale/es/LC_MESSAGES/default.po b/win32/gui-2/locale/es/LC_MESSAGES/default.po
new file mode 100644 (file)
index 0000000..2fc2a2f
--- /dev/null
@@ -0,0 +1,904 @@
+#\r
+msgid ""\r
+msgstr ""\r
+"Project-Id-Version: GPSBabelGUI-2\n"\r
+"POT-Creation-Date: 2005-12-06 17:57\n"\r
+"PO-Revision-Date: 2006-11-01 20:07+0100\n"\r
+"Last-Translator: Daniel Díaz <Daniel.Diaz.Quintero@gmail.com>\n"\r
+"MIME-Version: 1.0\n"\r
+"Content-Type: text/plain; charset=UTF-8\n"\r
+"Content-Transfer-Encoding: 8bit\n"\r
+"X-Generator: dxgettext 1.2.1\n"\r
+"Language-Team: Daniel Díaz <Daniel.Diaz.Quintero@gmail.com>\n"\r
+"X-Poedit-Language: Spanish\n"\r
+"X-Poedit-Country: SPAIN\n"\r
+\r
+#. frmAbout..Caption\r
+#: about.dfm:5\r
+msgid "About"\r
+msgstr "Acerca de..."\r
+\r
+#. frmAbout..pnClient..pnCenter..lbHint1..Caption\r
+#: about.dfm:76\r
+msgid "This program is part of the GPSBabel project, hosted on"\r
+msgstr "Este programa forma parte del proyecto GPSBabel, alojado en"\r
+\r
+#. frmAbout..pnClient..pnCenter..lbVersion..Caption\r
+#: about.dfm:84\r
+#: about.pas:80\r
+msgid "Version"\r
+msgstr "Versión"\r
+\r
+#. frmAbout..pnClient..pnCenter..lbTranslators..Caption\r
+#: about.dfm:91\r
+msgid "Translations"\r
+msgstr "Traducciones"\r
+\r
+#. frmAbout..pnClient..pnCenter..lbURL..Caption\r
+#: about.dfm:98\r
+msgid "www.gpsbabel.org"\r
+msgstr "www.gpsbabel.org"\r
+\r
+#. frmAbout..pnClient..pnCenter..lbCopyRight..Caption\r
+#: about.dfm:114\r
+msgid "Copyright (C) 2005,2006 Olaf Klein (o.b.klein@gpsbabel.org)"\r
+msgstr ""\r
+\r
+#. frmAbout..pnClient..pnCenter..lbMoreInfo..Caption\r
+#: about.dfm:121\r
+msgid "Find more info at"\r
+msgstr "Más información en"\r
+\r
+#. frmAbout..pnClient..pnCenter..stDescription..Caption\r
+#: about.dfm:149\r
+msgid "The frontend for GPSBabel command line program"\r
+msgstr "Frontal para línea de comandos de GPSBabel"\r
+\r
+#. frmAbout..pnClient..pnCenter..stLicense..Caption\r
+#: about.dfm:163\r
+msgid "THIS SOFTWARE MAY ONLY BE LICENSED FREE OF CHARGE"\r
+msgstr "ESTE SOFTWARE SOLO PUEDE TENER LICENCIA GRATUITA"\r
+\r
+#. frmAbout..pnClient..pnCenter..btnNewLanguage..Caption\r
+#: about.dfm:192\r
+msgid "Adding a new language"\r
+msgstr "Añadir un nuevo lenguaje"\r
+\r
+#. frmFilter..Caption\r
+#: filter.dfm:6\r
+msgid "Filter"\r
+msgstr "Filtro"\r
+\r
+#. frmFilter..gbTracks..Caption\r
+#. frmMain..pnBottom..cbTracks..Caption\r
+#: filter.dfm:31\r
+#: main.dfm:581\r
+msgid "&Tracks"\r
+msgstr "&Trazas"\r
+\r
+#. frmFilter..gbTracks..lbTimePlusMinus..Caption\r
+#: filter.dfm:39\r
+#: about.pas:87\r
+#: about.pas:88\r
+#: about.pas:89\r
+msgid "by"\r
+msgstr "por"\r
+\r
+#. frmFilter..gbTracks..lbTimeDays..Caption\r
+#: filter.dfm:46\r
+msgid "day(s), "\r
+msgstr "dia(s)"\r
+\r
+#. frmFilter..gbTracks..lbTimeHours..Caption\r
+#: filter.dfm:53\r
+msgid "hour(s), "\r
+msgstr "hora(s)"\r
+\r
+#. frmFilter..gbTracks..lbTimeMinutes..Caption\r
+#: filter.dfm:60\r
+msgid "minute(s),"\r
+msgstr "minuto(s)"\r
+\r
+#. frmFilter..gbTracks..lbTimeSeconds..Caption\r
+#: filter.dfm:67\r
+msgid "second(s)"\r
+msgstr "segundo(s)"\r
+\r
+#. frmFilter..gbTracks..cbTrackTitle..Hint\r
+#: filter.dfm:74\r
+msgid "Title for new tracks"\r
+msgstr "Nombre para nuevas trazas"\r
+\r
+#. frmFilter..gbTracks..cbTrackTitle..Caption\r
+#: filter.dfm:76\r
+msgid "Tit&le"\r
+msgstr "&Nombre"\r
+\r
+#. frmFilter..gbTracks..cbTrackSplit..Hint\r
+#: filter.dfm:95\r
+msgid "Split track into several tracks depending on date of trackpoint"\r
+msgstr "Dividir en varias trazas pedendiendo de la fecha de los puntos de información"\r
+\r
+#. frmFilter..gbTracks..cbTrackSplit..Caption\r
+#: filter.dfm:96\r
+msgid "&Split"\r
+msgstr "&Dividir"\r
+\r
+#. frmFilter..gbTracks..cbTrackTime..Hint\r
+#: filter.dfm:104\r
+msgid "Shift all tracks"\r
+msgstr "Desplazar todas las trazas"\r
+\r
+#. frmFilter..gbTracks..cbTrackTime..Caption\r
+#: filter.dfm:105\r
+msgid "&Move"\r
+msgstr "&Mover"\r
+\r
+#. frmFilter..gbTracks..cbTrackStart..Hint\r
+#: filter.dfm:197\r
+msgid "Take only trackpoints starting at"\r
+msgstr "Recuperar registros de trazado que empiecen el"\r
+\r
+#. frmFilter..gbTracks..cbTrackStart..Caption\r
+#: filter.dfm:198\r
+msgid "Start at"\r
+msgstr "Empezar el"\r
+\r
+#. frmFilter..gbTracks..cbTrackStop..Caption\r
+#: filter.dfm:237\r
+msgid "stop at"\r
+msgstr "parar el"\r
+\r
+#. frmFilter..gbTracks..cbTrackPack..Hint\r
+#: filter.dfm:276\r
+msgid "Pack all tracks into one track (No duplicate timestamps)"\r
+msgstr "Agrupar todas las trazas en una sola (Sin fechas duplicadas)"\r
+\r
+#. frmFilter..gbTracks..cbTrackPack..Caption\r
+#: filter.dfm:277\r
+msgid "&Pack (or)"\r
+msgstr "&Agrupar(o)"\r
+\r
+#. frmFilter..gbTracks..cbTrackMerge..Hint\r
+#: filter.dfm:286\r
+msgid "Merge all tracks into one track"\r
+msgstr "Mezclar todas las trazas en una sola"\r
+\r
+#. frmFilter..gbTracks..cbTrackMerge..Caption\r
+#: filter.dfm:287\r
+msgid "Merge"\r
+msgstr "Mezclar"\r
+\r
+#. frmFilter..gbTracks..cbTrackRangeTimeZone..Hint\r
+#: filter.dfm:296\r
+msgid "Shift start/stop by local timezone offset"\r
+msgstr "Desplazar inicio/fin según diferencia horaria local"\r
+\r
+#. frmFilter..gbTracks..cbTrackRangeTimeZone..Caption\r
+#: filter.dfm:297\r
+msgid "TZ"\r
+msgstr "TZ"\r
+\r
+#. frmFilter..gbTracks..cbTrackFixes..Hint\r
+#: filter.dfm:306\r
+msgid "Synthesize GPS fixes (PPS, DGPS, 3D, 2D)"\r
+msgstr ""\r
+\r
+#. frmFilter..gbTracks..cbTrackFixes..Caption\r
+#: filter.dfm:307\r
+msgid "GPS fixes"\r
+msgstr ""\r
+\r
+#. frmFilter..gbTracks..cbTrackCourse..Hint\r
+#: filter.dfm:315\r
+msgid "Synthesize course values"\r
+msgstr "Sintetizar los valores del curso"\r
+\r
+#. frmFilter..gbTracks..cbTrackCourse..Caption\r
+#: filter.dfm:316\r
+msgid "Course"\r
+msgstr "Curso"\r
+\r
+#. frmFilter..gbTracks..cbTrackSpeed..Hint\r
+#: filter.dfm:324\r
+msgid "Synthesize speed values"\r
+msgstr "Sintetizar los valores de la velocidad"\r
+\r
+#. frmFilter..gbTracks..cbTrackSpeed..Caption\r
+#: filter.dfm:325\r
+msgid "Speed"\r
+msgstr "Rutas"\r
+\r
+#. frmFilter..gbRoutes..Caption\r
+#: filter.dfm:335\r
+msgid "&Routes && Tracks"\r
+msgstr "&Rutas && Trazas"\r
+\r
+#. frmFilter..gbRoutes..lbRouteSimplifyCount..Caption\r
+#: filter.dfm:343\r
+msgid "limit to"\r
+msgstr "limitar a"\r
+\r
+#. frmFilter..gbRoutes..lbRouteSimplifyText..Caption\r
+#: filter.dfm:351\r
+msgid "Points"\r
+msgstr "Puntos"\r
+\r
+#. frmFilter..gbRoutes..cbRouteSimplify..Hint\r
+#: filter.dfm:358\r
+msgid "Simplify routes and tracks by limited number of points"\r
+msgstr "Simplificar rutas y trazas limitando el número de puntos"\r
+\r
+#. frmFilter..gbRoutes..cbRouteSimplify..Caption\r
+#: filter.dfm:359\r
+msgid "Simplify"\r
+msgstr "Simplificar"\r
+\r
+#. frmFilter..gbRoutes..edRoutesSimplifyMaxPoints..Hint\r
+#: filter.dfm:368\r
+msgid "Upper limit of points for routes and tracks"\r
+msgstr "Aumentar número de puntos para rutas y trazas"\r
+\r
+#. frmFilter..gbRoutes..cbReverse..Hint\r
+#: filter.dfm:390\r
+msgid "Reverse routes and tracks"\r
+msgstr "Rutas y trazas inversas"\r
+\r
+#. frmFilter..gbRoutes..cbReverse..Caption\r
+#: filter.dfm:391\r
+msgid "Reverse"\r
+msgstr "Inverso"\r
+\r
+#. frmFilter..pnBottom..btnOK..Caption\r
+#: filter.dfm:408\r
+msgid "OK"\r
+msgstr "OK"\r
+\r
+#. frmFilter..pnBottom..BitBtn1..Caption\r
+#: filter.dfm:444\r
+msgid "File based filters"\r
+msgstr "Archivos de filtros"\r
+\r
+#. frmFilter..gbWaypoints..Caption\r
+#. frmMain..pnBottom..cbWaypoints..Caption\r
+#: filter.dfm:473\r
+#: main.dfm:555\r
+msgid "&Waypoints"\r
+msgstr "&Registros de trazado"\r
+\r
+#. frmFilter..gbWaypoints..lbWayptRadiusLat..Caption\r
+#: filter.dfm:482\r
+msgid "Latitude"\r
+msgstr "Latitud"\r
+\r
+#. frmFilter..gbWaypoints..lbWayptRadiusLon..Caption\r
+#: filter.dfm:490\r
+msgid "Longitude"\r
+msgstr "Longitud"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDupLoc..Hint\r
+#: filter.dfm:498\r
+msgid "Merge waypoints with duplicate locations"\r
+msgstr "Mezclar registros de trazado con ubicaciones duplicadas"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDupLoc..Caption\r
+#: filter.dfm:499\r
+msgid "locations"\r
+msgstr "ubicaciones"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDupNames..Hint\r
+#: filter.dfm:508\r
+msgid "Merge waypoints with duplicate \"short name\""\r
+msgstr "Mezclar registros de trazado duplicados con \"nombre corto\""\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDupNames..Caption\r
+#: filter.dfm:509\r
+msgid "\"short names\""\r
+msgstr "\"nombre corto\""\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDistance..Hint\r
+#: filter.dfm:518\r
+msgid "Merge waypoints separated by less then"\r
+msgstr "Mezclar registros de trazado menores cuando"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDistance..Caption\r
+#: filter.dfm:519\r
+msgid "Position"\r
+msgstr "Posición"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptSort..Hint\r
+#: filter.dfm:547\r
+msgid "Sort waypoints by \"short name\" or by description"\r
+msgstr "Ordenar registros de trazado por \"nombre corto\" o por descripción"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptSort..Caption\r
+#: filter.dfm:548\r
+msgid "Sort"\r
+msgstr "Ordenar"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDups..Hint\r
+#: filter.dfm:556\r
+msgid "Merge duplicate waypoints"\r
+msgstr "Mezclar registros de trazado duplicados"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptMergeDups..Caption\r
+#: filter.dfm:557\r
+msgid "Duplicates"\r
+msgstr "Duplicados"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptRadius..Hint\r
+#: filter.dfm:566\r
+msgid "Include points based on their proximity to central point"\r
+msgstr "Incluir puntos basándose en la proximidad  a un punto central"\r
+\r
+#. frmFilter..gbWaypoints..cbWayptRadius..Caption\r
+#: filter.dfm:567\r
+msgid "Radius"\r
+msgstr "Radio"\r
+\r
+#. frmFilter..gbWaypoints..edWayptRadiusLat..Hint\r
+#: filter.dfm:595\r
+msgid "Latitude of central point"\r
+msgstr "Latitud del punto central"\r
+\r
+#. frmFilter..gbWaypoints..edWayptRadiusLon..Hint\r
+#: filter.dfm:605\r
+msgid "Longitude of central point"\r
+msgstr "Longitud del punto central"\r
+\r
+#. frmFilter..gbTransform..Caption\r
+#: filter.dfm:617\r
+msgid "Transformation"\r
+msgstr ""\r
+\r
+#. frmFilter..gbTransform..cbTransform..Caption\r
+#: filter.dfm:634\r
+msgid "Transform"\r
+msgstr ""\r
+\r
+#. frmFilter..gbTransform..cbTransformDelete..Hint\r
+#: filter.dfm:643\r
+msgid "Delete source data after transformation"\r
+msgstr ""\r
+\r
+#. frmFilter..gbTransform..cbTransformDelete..Caption\r
+#: filter.dfm:644\r
+msgid "Delete"\r
+msgstr "Eliminar"\r
+\r
+#. frmMain..pnTop..gbInput..Caption\r
+#: main.dfm:38\r
+#: main.pas:270\r
+#: main.pas:275\r
+#: main.pas:471\r
+#: main.pas:872\r
+msgid "Input"\r
+msgstr "Entrada"\r
+\r
+#. frmMain..pnTop..gbInput..sbOpenFile..Hint\r
+#: main.dfm:45\r
+msgid "Start the file open dialog"\r
+msgstr "Iniciar el cuadro de diálogo de abrir archivo"\r
+\r
+#. frmMain..pnTop..gbInput..lbInputOpts..Caption\r
+#. frmMain..pnTop..gbOutput..lbOutputOpts..Caption\r
+#. frmMain..ActionList1..acOptionsSourceFormat..Category\r
+#. frmMain..ActionList1..acOptionsTargetFormat..Category\r
+#. frmMain..ActionList1..acOptionsEnableCharactersetTransformation..Category\r
+#: main.dfm:68\r
+#: main.dfm:229\r
+#: main.dfm:1418\r
+#: main.dfm:1423\r
+#: main.dfm:1437\r
+msgid "Options"\r
+msgstr "Opciones"\r
+\r
+#. frmMain..pnTop..gbInput..lbInputFormat..Caption\r
+#. frmMain..pnTop..gbOutput..lbOutputFormat..Caption\r
+#: main.dfm:76\r
+#: main.dfm:259\r
+msgid "Format"\r
+msgstr "Formato"\r
+\r
+#. frmMain..pnTop..gbInput..lbInputFile..Caption\r
+#. frmMain..pnTop..gbOutput..lbOutputFile..Caption\r
+#. frmMain..ActionList1..acFileExit..Category\r
+#. frmMain..ActionList1..acFileClearMemo..Category\r
+#. frmMain..ActionList1..acFileOutputToScreen..Category\r
+#. frmMain..ActionList1..acFileChangeLanguage..Category\r
+#. frmMain..ActionList1..acFileExportCSV..Category\r
+#: main.dfm:83\r
+#: main.dfm:266\r
+#: main.dfm:1399\r
+#: main.dfm:1428\r
+#: main.dfm:1443\r
+#: main.dfm:1455\r
+#: main.dfm:1460\r
+#: main.pas:869\r
+#: main.pas:923\r
+msgid "File"\r
+msgstr "Archivo"\r
+\r
+#. frmMain..pnTop..gbInput..chbInputDevice..Hint\r
+#: main.dfm:112\r
+msgid "Read data from device instead from file"\r
+msgstr "Leer datos del dispositivo en vez de archivo"\r
+\r
+#. frmMain..pnTop..gbInput..chbInputDevice..Caption\r
+#. frmMain..pnTop..gbOutput..chbOutputDevice..Caption\r
+#: main.dfm:115\r
+#: main.dfm:299\r
+msgid "Device"\r
+msgstr "Dispositivo"\r
+\r
+#. frmMain..pnTop..gbInput..edInputOpts..Hint\r
+#: main.dfm:124\r
+msgid "Options for the selected input format"\r
+msgstr "Opciones de formato de la entrada seleccionada"\r
+\r
+#. frmMain..pnTop..gbInput..edInputFile..Hint\r
+#: main.dfm:135\r
+msgid "Read data from given filename"\r
+msgstr "Leer datos del archivo facilitado"\r
+\r
+#. frmMain..pnTop..gbInput..cbInputLang..Hint\r
+#: main.dfm:146\r
+msgid "Characterset for input data"\r
+msgstr "Juego de caracteres para la entrada"\r
+\r
+#. frmMain..pnTop..gbInput..cbInputLang....Items.Strings\r
+#. frmMain..pnTop..gbOutput..cbOutputLang....Items.Strings\r
+#: main.dfm:152\r
+#: main.dfm:363\r
+msgid "- default -"\r
+msgstr "- por defecto -"\r
+\r
+#. frmMain..pnTop..gbInput..cbInputDevice..Hint\r
+#: main.dfm:179\r
+msgid "Read data from device ..."\r
+msgstr "Leer datos del dispositivo ..."\r
+\r
+#. frmMain..pnTop..gbInput..cbInputFormatDevice..Hint\r
+#: main.dfm:194\r
+msgid "Format for input from device"\r
+msgstr "Formato del dispositivo de entrada"\r
+\r
+#. frmMain..pnTop..gbInput..cbInputFormat..Hint\r
+#: main.dfm:208\r
+msgid "Format for input from file"\r
+msgstr "Formato del archivo de entrada"\r
+\r
+#. frmMain..pnTop..gbOutput..Caption\r
+#: main.dfm:222\r
+#: main.pas:271\r
+#: main.pas:276\r
+#: main.pas:480\r
+#: main.pas:926\r
+msgid "Output"\r
+msgstr "Salida"\r
+\r
+#. frmMain..pnTop..gbOutput..sbSaveFile..Hint\r
+#: main.dfm:273\r
+msgid "Start the file save dialog"\r
+msgstr "Iniciar el cuadro de diálogo de guardar en archivo"\r
+\r
+#. frmMain..pnTop..gbOutput..chbOutputDevice..Hint\r
+#: main.dfm:296\r
+msgid "Write data to device instead to file"\r
+msgstr "Escribir datos en el dispositivo en vez de archivo"\r
+\r
+#. frmMain..pnTop..gbOutput..cbOutputFormatDevice..Hint\r
+#: main.dfm:309\r
+msgid "Format for ouput to device"\r
+msgstr "Formato del dispositivo de salida"\r
+\r
+#. frmMain..pnTop..gbOutput..edOutputOpts..Hint\r
+#: main.dfm:321\r
+msgid "Options for the selected output format"\r
+msgstr "Opciones para el formato de salida seleccionado"\r
+\r
+#. frmMain..pnTop..gbOutput..cbOutputFormat..Hint\r
+#: main.dfm:332\r
+msgid "Format for output to file"\r
+msgstr "Formato del archivo de salida"\r
+\r
+#. frmMain..pnTop..gbOutput..edOutputFile..Hint\r
+#: main.dfm:345\r
+msgid "Write data to given filename"\r
+msgstr "Escribir datos al archivo seleccionado"\r
+\r
+#. frmMain..pnTop..gbOutput..cbOutputLang..Hint\r
+#: main.dfm:357\r
+msgid "Characterset for output data"\r
+msgstr "Juego de caracteres para los datos de salida"\r
+\r
+#. frmMain..pnTop..gbOutput..cbOutputDevice..Hint\r
+#: main.dfm:390\r
+msgid "Write data to device ..."\r
+msgstr "Escribir datos al dispositivo ..."\r
+\r
+#. frmMain..pnBottom..lbWhat..Caption\r
+#: main.dfm:415\r
+msgid "What ?"\r
+msgstr "¿Qué?"\r
+\r
+#. frmMain..pnBottom..cbWaypoints..Hint\r
+#: main.dfm:554\r
+msgid "Process waypoint information"\r
+msgstr "Información del proceso de registros de trazado"\r
+\r
+#. frmMain..pnBottom..cbRoutes..Hint\r
+#: main.dfm:568\r
+msgid "Process route information"\r
+msgstr "Información del proceso de rutas"\r
+\r
+#. frmMain..pnBottom..cbRoutes..Caption\r
+#: main.dfm:569\r
+msgid "&Routes"\r
+msgstr "&Rutas"\r
+\r
+#. frmMain..pnBottom..cbTracks..Hint\r
+#: main.dfm:580\r
+msgid "Process track information"\r
+msgstr "Información del proceso de trazas"\r
+\r
+#. frmMain..pnBottom..btnFilter..Caption\r
+#. frmMain..ActionList1..acFilterSelect..Caption\r
+#: main.dfm:594\r
+#: main.dfm:1393\r
+msgid "&Filter"\r
+msgstr "&Filtrar"\r
+\r
+#. frmMain..pnBottom..btnProcess..Hint\r
+#: main.dfm:638\r
+msgid "Start data conversion"\r
+msgstr "Empezar la conversión datos"\r
+\r
+#. frmMain..pnBottom..btnProcess..Caption\r
+#. frmMain..ActionList1..acConvert..Caption\r
+#: main.dfm:641\r
+#: main.dfm:1386\r
+msgid "let's go"\r
+msgstr "iniciar"\r
+\r
+#. frmMain..OpenDialog..Filter\r
+#: main.dfm:701\r
+msgid "Garmin Mapsource mps|*.mps|All files|*.*"\r
+msgstr "Garmin Mapsource mps|*.mps|Todos los archivos|*.*"\r
+\r
+#. frmMain..SaveDialog..Filter\r
+#: main.dfm:707\r
+msgid "All file(s)|*.*|Garmin MapSource mps|*.mps"\r
+msgstr "Todos los archivos|*.*|Garmin Mapsource mps|*.mps"\r
+\r
+#. frmMain..ActionList1..acConvert..Category\r
+#. frmMain..ActionList1..acFilterSelect..Category\r
+#: main.dfm:1385\r
+#: main.dfm:1392\r
+msgid "Babel"\r
+msgstr "Babel"\r
+\r
+#. frmMain..ActionList1..acFilterSelect..Hint\r
+#: main.dfm:1394\r
+msgid "Filter incomming data before writing them to file or device"\r
+msgstr "Filtrar los datos de entrada antes de guardarlos a archivo o dispositivo"\r
+\r
+#. frmMain..ActionList1..acFileExit..Caption\r
+#: main.dfm:1400\r
+msgid "E&xit"\r
+msgstr "&Salir"\r
+\r
+#. frmMain..ActionList1..acHelpAbout..Category\r
+#. frmMain..ActionList1..acHelpIntro..Category\r
+#. frmMain..ActionList1..acHelpReadme..Category\r
+#: main.dfm:1404\r
+#: main.dfm:1409\r
+#: main.dfm:1413\r
+msgid "Help"\r
+msgstr "A&yuda"\r
+\r
+#. frmMain..ActionList1..acHelpAbout..Caption\r
+#: main.dfm:1405\r
+msgid "&About"\r
+msgstr "&Acerca de"\r
+\r
+#. frmMain..ActionList1..acHelpIntro..Caption\r
+#: main.dfm:1410\r
+msgid "&Intro"\r
+msgstr "&Introducción"\r
+\r
+#. frmMain..ActionList1..acHelpReadme..Caption\r
+#. frmReadme..Caption\r
+#: main.dfm:1414\r
+#: readme.dfm:6\r
+msgid "GPSBabel README"\r
+msgstr "GPSBabel README"\r
+\r
+#. frmMain..ActionList1..acOptionsSourceFormat..Caption\r
+#: main.dfm:1419\r
+msgid "... for source format"\r
+msgstr "... para formato origen"\r
+\r
+#. frmMain..ActionList1..acOptionsTargetFormat..Caption\r
+#: main.dfm:1424\r
+msgid "... for target format"\r
+msgstr "... para formato destino"\r
+\r
+#. frmMain..ActionList1..acFileClearMemo..Caption\r
+#: main.dfm:1429\r
+msgid "Clear output"\r
+msgstr "Limpiar salida"\r
+\r
+#. frmMain..ActionList1..acFileClearMemo..Hint\r
+#: main.dfm:1430\r
+msgid "Clear messages"\r
+msgstr "Limpiar mensajes"\r
+\r
+#. frmMain..ActionList1..acOptionsEnableCharactersetTransformation..Caption\r
+#: main.dfm:1438\r
+msgid "Enable characterset transformation"\r
+msgstr "Habilitar transformación juego de caracteres"\r
+\r
+#. frmMain..ActionList1..acFileOutputToScreen..Caption\r
+#: main.dfm:1444\r
+msgid "Output to screen"\r
+msgstr "Salida a pantalla"\r
+\r
+#. frmMain..ActionList1..acFileChangeLanguage..Caption\r
+#: main.dfm:1456\r
+msgid "Change language"\r
+msgstr "Seleccionar lenguaje"\r
+\r
+#. frmMain..ActionList1..acFileExportCSV..Caption\r
+#: main.dfm:1461\r
+msgid "Export gpsbabel.csv (unicode)"\r
+msgstr "Exportar a gpsbabel.csv (unicode)"\r
+\r
+#. frmMain..MainMenu1..mnuFile..Caption\r
+#: main.dfm:1469\r
+msgid "&File"\r
+msgstr "&Archivo"\r
+\r
+#. frmMain..MainMenu1..mnuFile..File1..Caption\r
+#: main.dfm:1477\r
+msgid "Export"\r
+msgstr "Exportar"\r
+\r
+#. frmMain..MainMenu1..mnuOptions..Caption\r
+#: main.dfm:1498\r
+msgid "&Options"\r
+msgstr "&Opciones"\r
+\r
+#. frmMain..MainMenu1..mnuOptions..mnuSynthesizeShortNames..Caption\r
+#: main.dfm:1500\r
+msgid "Synthesize shortnames"\r
+msgstr "Agrupar nombres cortos"\r
+\r
+#. frmMain..MainMenu1..mnuOptions..mnuSynthesizeShortNames....Hint\r
+#: main.dfm:1503\r
+msgid "Ignore shortnames from source data and synthesize them from description or notes"\r
+msgstr "Ignorar nombres cortos del origen y agruparlos desde las descripciones o notas"\r
+\r
+#. frmMain..MainMenu1..mnuOptions..mnuOptionsForceDataType..Caption\r
+#: main.dfm:1507\r
+msgid "Force selected GPS data types (nuketypes filter)"\r
+msgstr "Forzar tipos de datos del GPS seleccionado (filtro nuketipes)"\r
+\r
+#. frmMain..MainMenu1..mnuHelp..Caption\r
+#: main.dfm:1548\r
+msgid "&Help"\r
+msgstr "&Ayuda"\r
+\r
+#. frmOptions..Caption\r
+#: options.dfm:5\r
+msgid "Options for ..."\r
+msgstr "Opciones de ..."\r
+\r
+#. frmSelect..pnBottom..btnCancel..Caption\r
+#: select.dfm:66\r
+msgid "Abort"\r
+msgstr "Interrumpir"\r
+\r
+#: about.pas:87\r
+#: select.pas:81\r
+msgid "German"\r
+msgstr "Alemán"\r
+\r
+#: about.pas:88\r
+#: select.pas:83\r
+msgid "French"\r
+msgstr "Francés"\r
+\r
+#: about.pas:89\r
+#: select.pas:82\r
+msgid "Spanish"\r
+msgstr "Español"\r
+\r
+#: about.pas:131\r
+msgid ""\r
+"Please have a look at the file README.GUI.\n"\r
+"\n"\r
+"There you will find all information you need to\n"\r
+"get GPSBabelGUI working in your own language."\r
+msgstr ""\r
+"Por favor lea el archivo README.GUI.\n"\r
+"\n"\r
+"Allí encontrará toda la inforamción que necesita\n"\r
+"para ejecutar GPSBabelGUI en su propio lenguaje."\r
+\r
+#: filter.pas:178\r
+#: filter.pas:179\r
+#: filter.pas:182\r
+#: filter.pas:183\r
+msgid "Waypoints"\r
+msgstr "Registros de trazado"\r
+\r
+#: filter.pas:178\r
+#: filter.pas:179\r
+#: filter.pas:180\r
+#: filter.pas:181\r
+msgid "Routes"\r
+msgstr "Rutas"\r
+\r
+#: filter.pas:180\r
+#: filter.pas:181\r
+#: filter.pas:182\r
+#: filter.pas:183\r
+msgid "Tracks"\r
+msgstr "Trazas"\r
+\r
+#: filter.pas:222\r
+msgid "Feet"\r
+msgstr "Pie"\r
+\r
+#: filter.pas:223\r
+msgid "Meter"\r
+msgstr "Metro"\r
+\r
+#: filter.pas:226\r
+msgid "Miles"\r
+msgstr "Milla"\r
+\r
+#: filter.pas:227\r
+msgid "Kilometer"\r
+msgstr "Kilómetro"\r
+\r
+#: filter.pas:237\r
+msgid "Not supported by gpsbabel.exe, release %s!"\r
+msgstr "¡No soportado por gpsbabel.exe, versión %s!"\r
+\r
+#: filter.pas:285\r
+msgid "Value (%s) out of range (%g to %g)!"\r
+msgstr "¡Valor (%s) fuera de rango (de %g a %g)!"\r
+\r
+#: filter.pas:590\r
+#: options.pas:661\r
+msgid "Discard changes?"\r
+msgstr "¿Descartar cambios?"\r
+\r
+#: main.pas:244\r
+msgid "Internal development release"\r
+msgstr "Versión en desarrollo interno"\r
+\r
+#: main.pas:246\r
+msgid "BETA"\r
+msgstr "BETA"\r
+\r
+#: main.pas:248\r
+msgid "Private release"\r
+msgstr "Versión privada"\r
+\r
+#: main.pas:250\r
+msgid "Special release"\r
+msgstr "Versión especial"\r
+\r
+#: main.pas:346\r
+msgid "The file \"gpsbabel.exe\" found in current directory is too old!"\r
+msgstr "¡El archivo \"gpsbabel.exe\" encontrado en el directorio es obsoleto!"\r
+\r
+#: main.pas:420\r
+#: main.pas:554\r
+msgid "All files|*.*"\r
+msgstr "Todos los archivo|*.*"\r
+\r
+#: main.pas:488\r
+msgid "Select and edit options for \"%s\""\r
+msgstr "Seleccionar y editar opciones para \"%s\""\r
+\r
+#: main.pas:492\r
+msgid "No options available for \"%s\""\r
+msgstr "No hay opciones disponibles para \"%s\""\r
+\r
+#. s := s + '-1';\r
+#: main.pas:607\r
+msgid "File %s not found."\r
+msgstr "No se encontró el archivo %s."\r
+\r
+#: main.pas:668\r
+msgid "File \"%s\" exists ! Overwrite ?"\r
+msgstr "El archivo \"%s\" ya existe ¿sobreescribir?"\r
+\r
+#: main.pas:669\r
+msgid "Warning"\r
+msgstr "Precaución"\r
+\r
+#: main.pas:702\r
+msgid "Could not run \"gpsbabel.exe\"!"\r
+msgstr "¡No se puede ejecutar \"gpsbabel.exe\"!"\r
+\r
+#: main.pas:711\r
+msgid "Sorry, gpsbabel.exe reported problems!"\r
+msgstr "¡Perdón, gpsbabel.exe indicó algún problema!"\r
+\r
+#: main.pas:713\r
+msgid "Converted successfully from \"%s\" to \"%s\"."\r
+msgstr "Conversión correcta de \"%s\" to \"%s\"."\r
+\r
+#: main.pas:824\r
+msgid "GPSBabel, version %s"\r
+msgstr "GPSBabel, versión %s"\r
+\r
+#: main.pas:858\r
+#: main.pas:913\r
+msgid "Port"\r
+msgstr "Puerto"\r
+\r
+#: main.pas:1017\r
+msgid "Options for \"%s\""\r
+msgstr "Opciones para \"%s\""\r
+\r
+#: main.pas:1207\r
+#: main.pas:1277\r
+msgid "Choose language"\r
+msgstr "Elejir lenguaje"\r
+\r
+#: main.pas:1207\r
+msgid "for GUIBabelGUI"\r
+msgstr "para GUIBabelGUI"\r
+\r
+#: main.pas:1277\r
+msgid "for export"\r
+msgstr "para exportar"\r
+\r
+#. override;\r
+#: options.pas:147\r
+msgid "Be aware, that most options are made for the output side. "\r
+msgstr "Tenga precaución, la mayoría de las opciones están pensadas para la salida."\r
+\r
+#: options.pas:148\r
+msgid "Currently we don't have a flag which tells us which direction is used by the options."\r
+msgstr "Ahora mismo no hay seleccionada opción alguna que indique en que dirección se aplican las opciones."\r
+\r
+#: options.pas:208\r
+msgid "Short \"%s\""\r
+msgstr "Ordenar \"%s\""\r
+\r
+#: options.pas:332\r
+msgid "Invalid line format!"\r
+msgstr "¡Formato de línea invalido!"\r
+\r
+#: options.pas:353\r
+msgid "Unknown option \"%s\"!"\r
+msgstr "¡Opción \"%s\" desconocida!"\r
+\r
+#: select.pas:84\r
+msgid "English"\r
+msgstr "Inglés"\r
+\r
+#: utils.pas:119\r
+msgid "Error WINAPI: Could not create \"NamedPipe\"!"\r
+msgstr "¡Error de WINAPI: No se pudo crear \"NamedPipe\"!"\r
+\r
+#: utils.pas:124\r
+msgid "\"gpsbabel.exe\" not found!!!"\r
+msgstr "¡¡¡ No se ha encontrado \"gpsbabel.exe\"!!!"\r
+\r
+#. dwCreationFlags,     // creation flags\r
+#: utils.pas:143\r
+msgid "Could not run \"gpsbabel.exe\" (Error %d)!"\r
+msgstr "¡No se puede ejecutar \"gpsbabel.exe\" (Error %d)!"\r
+\r
+#: utils.pas:176\r
+msgid "\"gpsbabel.exe\" returned error 0x%x (%d)"\r
+msgstr "\"gpsbabel.exe\" devolvió el error 0x%x (%d)"\r
+\r
diff --git a/win32/gui-2/locale/es/LC_MESSAGES/delphi.po b/win32/gui-2/locale/es/LC_MESSAGES/delphi.po
new file mode 100644 (file)
index 0000000..10702c2
--- /dev/null
@@ -0,0 +1,12734 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2003-03-04 17:49\n"
+"PO-Revision-Date: 2005-10-25 08:14+0100\n"
+"Last-Translator: Jordi March <jmarch@comg.es>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Programmer's name for it: SInvalidCreateWidget\r
+#: Clx/QConsts.pas:22 \r
+msgid "Class %s could not create QT widget"
+msgstr "La clase %s no pudo crear el widget QT"
+
+#. Programmer's name for it: STooManyMessageBoxButtons\r
+#: Clx/QConsts.pas:23 \r
+msgid "Too many buttons specified for message box"
+msgstr "Demasiados botones especificados para la caja del mensaje"
+
+#. Programmer's name for it: SmkcBkSp\r
+#: Clx/QConsts.pas:25 \r
+msgid "Backspace"
+msgstr "Retroceso"
+
+#. Programmer's name for it: SmkcTab\r
+#. StandardActions..ActionList1..PreviousTab1..Category\r
+#. StandardActions..ActionList1..NextTab1..Category\r
+#: Clx/QConsts.pas:26 \r Vcl/Consts.pas:137 Vcl/ActnRes.dfm:244
+#: Vcl/ActnRes.dfm:249
+msgid "Tab"
+msgstr "Tab"
+
+#. Programmer's name for it: SmkcBackTab\r
+#: Clx/QConsts.pas:27 \r
+msgid "BackTab"
+msgstr "Tab Atrás"
+
+#. Programmer's name for it: SmkcEsc\r
+#: Clx/QConsts.pas:28 \r Vcl/Consts.pas:138
+msgid "Esc"
+msgstr "Esc"
+
+#. Programmer's name for it: SmkcReturn\r
+#: Clx/QConsts.pas:29 \r
+msgid "Return"
+msgstr "Retorno"
+
+#. Programmer's name for it: SmkcEnter\r
+#: Clx/QConsts.pas:30 \r Vcl/Consts.pas:139
+msgid "Enter"
+msgstr "Intro"
+
+#. Programmer's name for it: SmkcSpace\r
+#: Clx/QConsts.pas:31 \r Vcl/Consts.pas:140
+msgid "Space"
+msgstr "Espacio"
+
+#. Programmer's name for it: SmkcPgUp\r
+#: Clx/QConsts.pas:32 \r Vcl/Consts.pas:141
+msgid "PgUp"
+msgstr "Re Pág"
+
+#. Programmer's name for it: SmkcPgDn\r
+#: Clx/QConsts.pas:33 \r Vcl/Consts.pas:142
+msgid "PgDn"
+msgstr "Av Pág"
+
+#. Programmer's name for it: SmkcEnd\r
+#: Clx/QConsts.pas:34 \r Vcl/Consts.pas:143
+msgid "End"
+msgstr "Fin"
+
+#. Programmer's name for it: SmkcHome\r
+#. WebAppDbgMainForm..Home..Caption\r
+#: Clx/QConsts.pas:35 \r Vcl/Consts.pas:144 Internet/SvrMainForm.dfm:38
+msgid "Home"
+msgstr "Inicio"
+
+#. Programmer's name for it: SmkcLeft\r
+#: Clx/QConsts.pas:36 \r Vcl/Consts.pas:145
+msgid "Left"
+msgstr "Izq"
+
+#. Programmer's name for it: SmkcUp\r
+#: Clx/QConsts.pas:37 \r Vcl/Consts.pas:146
+msgid "Up"
+msgstr "Arriba"
+
+#. Programmer's name for it: SmkcRight\r
+#: Clx/QConsts.pas:38 \r Vcl/Consts.pas:147
+msgid "Right"
+msgstr "Der"
+
+#. Programmer's name for it: SmkcDown\r
+#: Clx/QConsts.pas:39 \r Vcl/Consts.pas:148
+msgid "Down"
+msgstr "Abajo"
+
+#. Programmer's name for it: SmkcIns\r
+#: Clx/QConsts.pas:40 \r Vcl/Consts.pas:149
+msgid "Ins"
+msgstr "Ins"
+
+#. Programmer's name for it: SmkcDel\r
+#: Clx/QConsts.pas:41 \r Vcl/Consts.pas:150
+msgid "Del"
+msgstr "Supr"
+
+#. Programmer's name for it: SmkcShift\r
+#: Clx/QConsts.pas:42 \r Vcl/Consts.pas:151
+msgid "Shift+"
+msgstr "Mayús+"
+
+#. Programmer's name for it: SmkcCtrl\r
+#: Clx/QConsts.pas:43 \r Vcl/Consts.pas:152
+msgid "Ctrl+"
+msgstr "Ctrl+"
+
+#. Programmer's name for it: SmkcAlt\r
+#: Clx/QConsts.pas:44 \r Vcl/Consts.pas:153
+msgid "Alt+"
+msgstr "Alt+"
+
+#. Programmer's name for it: SOpenFileTitle\r
+#. Programmer's name for it: SOpen\r
+#. Programmer's name for it: SOpenFileTitle\r
+#. ClxTreeViewItems..OpenDialog1..Title\r
+#. Title\r
+#. IndexFiles..OpenDialog..Title\r
+#: Clx/QConsts.pas:46 \r Clx/QConsts.pas:276 Vcl/Consts.pas:15 Property\r
+#: Editors/ClxNodeEdit.xfm:278 Editors/ClxPicEdit.xfm:111
+#: Editors/Ixedit.dfm:92
+msgid "Open"
+msgstr "Abrir"
+
+#. Programmer's name for it: SAssignError\r
+#: Clx/QConsts.pas:47 \r Rtl/Common/RTLConsts.pas:15
+msgid "Cannot assign a %s to a %s"
+msgstr "No puede asignarse %s a %s"
+
+#. Programmer's name for it: SFCreateError\r
+#. Programmer's name for it: SCannotCreateFile\r
+#. Programmer's name for it: SFCreateError\r
+#: Clx/QConsts.pas:48 \r Vcl/SqlConst.pas:121 Rtl/Common/RTLConsts.pas:27
+msgid "Cannot create file %s"
+msgstr "No puede crearse el archivo %s"
+
+#. Programmer's name for it: SFOpenError\r
+#: Clx/QConsts.pas:49 \r Rtl/Common/RTLConsts.pas:30
+msgid "Cannot open file %s"
+msgstr "No puede abrirse el archivo %s"
+
+#. Programmer's name for it: SReadError\r
+#: Clx/QConsts.pas:50 \r Rtl/Common/RTLConsts.pas:71
+msgid "Stream read error"
+msgstr "Hay un error de lectura del flujo"
+
+#. Programmer's name for it: SWriteError\r
+#: Clx/QConsts.pas:51 \r Rtl/Common/RTLConsts.pas:86
+msgid "Stream write error"
+msgstr "Hay un error de escritura del flujo"
+
+#. Programmer's name for it: SMemoryStreamError\r
+#: Clx/QConsts.pas:52 \r Rtl/Common/RTLConsts.pas:63
+msgid "Out of memory while expanding memory stream"
+msgstr "Sin memoria expandiendo el flujo de memoria"
+
+#. Programmer's name for it: SCantWriteResourceStreamError\r
+#: Clx/QConsts.pas:53 \r Vcl/Consts.pas:16 Rtl/Common/RTLConsts.pas:18
+msgid "Can't write to a read-only resource stream"
+msgstr "No se puede escribir sobre un flujo de recursos de solo lectura"
+
+#. Programmer's name for it: SDuplicateReference\r
+#: Clx/QConsts.pas:54 \r Vcl/Consts.pas:17
+msgid "WriteObject called twice for the same instance"
+msgstr "WriteObject llamado dos veces por la misma instancia"
+
+#. Programmer's name for it: SClassNotFound\r
+#: Clx/QConsts.pas:55 \r Rtl/Common/RTLConsts.pas:21
+msgid "Class %s not found"
+msgstr "Clase %s no encontrada"
+
+#. Programmer's name for it: SInvalidImage\r
+#. Programmer's name for it: SInvalidStreamFormat\r
+#. Programmer's name for it: SInvalidImage\r
+#: Clx/QConsts.pas:56 \r Vcl/OleConst.pas:29 Rtl/Common/RTLConsts.pas:43
+msgid "Invalid stream format"
+msgstr "Formato del flujo no válido"
+
+#. Programmer's name for it: SResNotFound\r
+#. Programmer's name for it: sResNotFound\r
+#. Programmer's name for it: SResNotFound\r
+#: Clx/QConsts.pas:57 \r Internet/WebConst.pas:33 Rtl/Common/RTLConsts.pas:77
+msgid "Resource %s not found"
+msgstr "Recurso %s no encontado"
+
+#. Programmer's name for it: SClassMismatch\r
+#: Clx/QConsts.pas:58 \r Vcl/Consts.pas:18
+msgid "Resource %s is of incorrect class"
+msgstr "El recurso %s es una clase incorrecta"
+
+#. Programmer's name for it: SListIndexError\r
+#: Clx/QConsts.pas:59 \r Rtl/Common/RTLConsts.pas:60
+msgid "List index out of bounds (%d)"
+msgstr "Indice de la lista fuera de rango (%d)"
+
+#. Programmer's name for it: SListCapacityError\r
+#: Clx/QConsts.pas:60 \r Rtl/Common/RTLConsts.pas:58
+msgid "List capacity out of bounds (%d)"
+msgstr "Desbordamiento de la capacidad de la lista (%d)"
+
+#. Programmer's name for it: SListCountError\r
+#: Clx/QConsts.pas:61 \r Rtl/Common/RTLConsts.pas:59
+msgid "List count out of bounds (%d)"
+msgstr "Desbordamiento del contador de la lista (%d)"
+
+#. Programmer's name for it: SSortedListError\r
+#: Clx/QConsts.pas:62 \r
+msgid "Operation not allowed on sorted string list"
+msgstr "Operación no soportada en una lista de cadenas ordenada"
+
+#. Programmer's name for it: SDuplicateString\r
+#: Clx/QConsts.pas:63 \r Rtl/Common/RTLConsts.pas:26
+msgid "String list does not allow duplicates"
+msgstr "La lista de cadenas no permite duplicados"
+
+#. Programmer's name for it: SInvalidTabIndex\r
+#: Clx/QConsts.pas:64 \r Vcl/Consts.pas:19
+msgid "Tab index out of bounds"
+msgstr "Indice de página fuera de rango"
+
+#. Programmer's name for it: SInvalidTabPosition\r
+#: Clx/QConsts.pas:65 \r Vcl/Consts.pas:20
+msgid "Tab position incompatible with current tab style"
+msgstr "Posición de página incompatible con el actual estilo de página"
+
+#. Programmer's name for it: SInvalidTabStyle\r
+#: Clx/QConsts.pas:66 \r Vcl/Consts.pas:21
+msgid "Tab style incompatible with current tab position"
+msgstr "Estilo de página incompatible con la actual posición de página"
+
+#. Programmer's name for it: SDuplicateName\r
+#: Clx/QConsts.pas:67 \r Rtl/Common/RTLConsts.pas:25
+msgid "A component named %s already exists"
+msgstr "Ya existe una componente de nombre %s"
+
+#. Programmer's name for it: SInvalidName\r
+#: Clx/QConsts.pas:68 \r Rtl/Common/RTLConsts.pas:46
+msgid "''%s'' is not a valid component name"
+msgstr "'%s' no es un nombre de componente válido"
+
+#. Programmer's name for it: SDuplicateClass\r
+#: Clx/QConsts.pas:69 \r Rtl/Common/RTLConsts.pas:23
+msgid "A class named %s already exists"
+msgstr "Ya existe una clase con nombre %s"
+
+#. Programmer's name for it: SInvalidInteger\r
+#: Clx/QConsts.pas:70 \r Rtl/Common/RTLConsts.pas:44
+msgid "''%s'' is not a valid integer value"
+msgstr "'%s' no es un valor entero válido"
+
+#. Programmer's name for it: SLineTooLong\r
+#. Programmer's name for it: SOutlineLongLine\r
+#. Programmer's name for it: SLineTooLong\r
+#: Clx/QConsts.pas:71 \r Vcl/Consts.pas:115 Rtl/Common/RTLConsts.pas:57
+msgid "Line too long"
+msgstr "Línea demasiado larga"
+
+#. Programmer's name for it: SInvalidPropertyValue\r
+#. Programmer's name for it: SInvalidProperty\r
+#. Programmer's name for it: SInvalidPropertyValue\r
+#: Clx/QConsts.pas:72 \r Clx/QConsts.pas:158 Rtl/Common/RTLConsts.pas:47
+#: Rtl/Common/RTLConsts.pas:51
+msgid "Invalid property value"
+msgstr "Valor de propiedad no válido"
+
+#. Programmer's name for it: SInvalidPropertyPath\r
+#: Clx/QConsts.pas:73 \r Rtl/Common/RTLConsts.pas:49
+msgid "Invalid property path"
+msgstr "Ruta de propiedad no válida"
+
+#. Programmer's name for it: SInvalidPropertyType\r
+#: Clx/QConsts.pas:74 \r Rtl/Common/RTLConsts.pas:50
+msgid "Invalid property type: %s"
+msgstr "Tipo de propiedad no válido: %s"
+
+#. Programmer's name for it: SInvalidPropertyElement\r
+#: Clx/QConsts.pas:75 \r Rtl/Common/RTLConsts.pas:48
+msgid "Invalid property element: %s"
+msgstr "Elemento de propiedad no válido: %s"
+
+#. Programmer's name for it: SUnknownProperty\r
+#: Clx/QConsts.pas:76 \r
+msgid "Property does not exist"
+msgstr "No existe la propiedad"
+
+#. Programmer's name for it: SReadOnlyProperty\r
+#: Clx/QConsts.pas:77 \r Rtl/Common/RTLConsts.pas:72
+msgid "Property is read-only"
+msgstr "La propiedad es de sólo lectura"
+
+#. Programmer's name for it: SPropertyException\r
+#: Clx/QConsts.pas:78 \r Rtl/Common/RTLConsts.pas:69
+msgid "Error reading %s%s%s: %s"
+msgstr "Se ha producido un error leyendo %s%s%s: %s"
+
+#. Programmer's name for it: SAncestorNotFound\r
+#: Clx/QConsts.pas:79 \r Rtl/Common/RTLConsts.pas:14
+msgid "Ancestor for '%s' not found"
+msgstr "No se ha encontrado predecesor para '%s'"
+
+#. Programmer's name for it: SInvalidBitmap\r
+#: Clx/QConsts.pas:80 \r Vcl/Consts.pas:22
+msgid "Bitmap image is not valid"
+msgstr "Imagen bitmap no válida"
+
+#. Programmer's name for it: SInvalidIcon\r
+#: Clx/QConsts.pas:81 \r Vcl/Consts.pas:23
+msgid "Icon image is not valid"
+msgstr "Imagen del icono no válido"
+
+#. Programmer's name for it: SInvalidPixelFormat\r
+#: Clx/QConsts.pas:82 \r Vcl/Consts.pas:25
+msgid "Invalid pixel format"
+msgstr "Formato de pixel no válido"
+
+#. Programmer's name for it: SBitmapEmpty\r
+#: Clx/QConsts.pas:83 \r Vcl/Consts.pas:27
+msgid "Bitmap is empty"
+msgstr "El bitmap está vacío"
+
+#. Programmer's name for it: SScanLine\r
+#: Clx/QConsts.pas:84 \r Vcl/Consts.pas:28
+msgid "Scan line index out of range"
+msgstr "Indice de la línea examinada fuera de rango"
+
+#. Programmer's name for it: SChangeIconSize\r
+#: Clx/QConsts.pas:85 \r Vcl/Consts.pas:29
+msgid "Cannot change the size of an icon"
+msgstr "No se puede cambiar el tamaño de un icono"
+
+#. Programmer's name for it: SUnknownExtension\r
+#: Clx/QConsts.pas:86 \r Vcl/Consts.pas:31
+msgid "Unknown picture file extension (.%s)"
+msgstr "Extensión de archivo de imagen (.%s) desconocida"
+
+#. Programmer's name for it: SUnknownClipboardFormat\r
+#: Clx/QConsts.pas:87 \r Vcl/Consts.pas:32
+msgid "Unsupported clipboard format"
+msgstr "Formato del portapapeles no soportado"
+
+#. Programmer's name for it: SOutOfResources\r
+#: Clx/QConsts.pas:88 \r Vcl/Consts.pas:33
+msgid "Out of system resources"
+msgstr "Sin recursos del sistema"
+
+#. Programmer's name for it: SNoCanvasHandle\r
+#: Clx/QConsts.pas:89 \r Vcl/Consts.pas:34
+msgid "Canvas does not allow drawing"
+msgstr "El canvas no permite dibujar"
+
+#. Programmer's name for it: SInvalidCanvasState\r
+#: Clx/QConsts.pas:90 \r
+msgid "Invalid canvas state request"
+msgstr "Petición del estado del canvas no válida"
+
+#. Programmer's name for it: SInvalidImageSize\r
+#: Clx/QConsts.pas:91 \r Vcl/Consts.pas:35
+msgid "Invalid image size"
+msgstr "Tamaño de imagen no válido"
+
+#. Programmer's name for it: SInvalidWidgetHandle\r
+#: Clx/QConsts.pas:92 \r
+msgid "Invalid widget handle"
+msgstr "Manejador (handle) widjet no válido"
+
+#. Programmer's name for it: SInvalidColorDepth\r
+#: Clx/QConsts.pas:93 \r
+msgid "Color depth must be 1, 8 or 32 bpp"
+msgstr "La profundidad del color debe ser 1, 8 o 32 bpp"
+
+#. Programmer's name for it: STooManyImages\r
+#: Clx/QConsts.pas:94 \r Vcl/Consts.pas:36
+msgid "Too many images"
+msgstr "Demasiadas imágenes"
+
+#. Programmer's name for it: SWidgetCreate\r
+#: Clx/QConsts.pas:95 \r
+msgid "Error creating widget"
+msgstr "Se ha producido un error creando widget"
+
+#. Programmer's name for it: SCannotFocus\r
+#: Clx/QConsts.pas:96 \r
+msgid "Cannot focus a disabled or invisible window (%s)"
+msgstr "No puede enfocarse una ventana deshabilitada o invisible (%s)"
+
+#. Programmer's name for it: SParentRequired\r
+#: Clx/QConsts.pas:97 \r
+msgid "Control '%s' has no parent widget"
+msgstr "El control '%s' no tiene un widget padre"
+
+#. Programmer's name for it: SParentGivenNotAParent\r
+#: Clx/QConsts.pas:98 \r Vcl/Consts.pas:49
+msgid "Parent given is not a parent of '%s'"
+msgstr "El padre dado no es un padre de '%s'"
+
+#. Programmer's name for it: SVisibleChanged\r
+#: Clx/QConsts.pas:99 \r Vcl/Consts.pas:51
+msgid "Cannot change Visible in OnShow or OnHide"
+msgstr "No es posible cambiar la visibilidad en OnShow u OnHide"
+
+#. Programmer's name for it: SCannotShowModal\r
+#: Clx/QConsts.pas:100 \r Vcl/Consts.pas:52
+msgid "Cannot make a visible window modal"
+msgstr "No se puede hacer visible una ventana modal"
+
+#. Programmer's name for it: SScrollBarRange\r
+#: Clx/QConsts.pas:101 \r Vcl/Consts.pas:53
+msgid "Scrollbar property out of range"
+msgstr "Propiedad Scrollbar fuera de rango"
+
+#. Programmer's name for it: SPropertyOutOfRange\r
+#: Clx/QConsts.pas:102 \r Vcl/Consts.pas:54
+msgid "%s property out of range"
+msgstr "Propiedad %s fuera de rango"
+
+#. Programmer's name for it: SMenuIndexError\r
+#: Clx/QConsts.pas:103 \r Vcl/Consts.pas:55
+msgid "Menu index out of range"
+msgstr "Indice de menú fuera de rango"
+
+#. Programmer's name for it: SMenuReinserted\r
+#: Clx/QConsts.pas:104 \r Vcl/Consts.pas:56
+msgid "Menu inserted twice"
+msgstr "Menú insertado dos veces"
+
+#. Programmer's name for it: SNoMenuRecursion\r
+#: Clx/QConsts.pas:105 \r
+msgid "Menu insertion recursion not allowed"
+msgstr "No está permitida la recursividad en la inserción del menú"
+
+#. Programmer's name for it: SMenuNotFound\r
+#: Clx/QConsts.pas:106 \r Vcl/Consts.pas:57
+msgid "Sub-menu is not in menu"
+msgstr "El sub-menú no se encuentra en un menú"
+
+#. Programmer's name for it: SMenuSetFormError\r
+#: Clx/QConsts.pas:107 \r
+msgid "TMenu.SetForm: argument must be TCustomForm"
+msgstr "TMenu.SetForm: el argumento debe ser TCustomForm"
+
+#. Programmer's name for it: SNoTimers\r
+#: Clx/QConsts.pas:108 \r Vcl/Consts.pas:58 Vcl/IBXConst.pas:187
+msgid "Not enough timers available"
+msgstr "No hay suficientes cronometradores disponibles"
+
+#. Programmer's name for it: SNotPrinting\r
+#: Clx/QConsts.pas:109 \r Vcl/Consts.pas:59 Rtl/Common/RTLConsts.pas:65
+msgid "Printer is not currently printing"
+msgstr "La impresora no se encuentra actualmente imprimiendo"
+
+#. Programmer's name for it: SPrinting\r
+#: Clx/QConsts.pas:110 \r Vcl/Consts.pas:60 Rtl/Common/RTLConsts.pas:70
+msgid "Printing in progress"
+msgstr "Impresión en progreso"
+
+#. Programmer's name for it: SNoAdapter\r
+#: Clx/QConsts.pas:111 \r
+msgid "No printer adapter available for printing"
+msgstr "No hay adaptador de impresora disponible para imprimir"
+
+#. Programmer's name for it: SPrinterIndexError\r
+#: Clx/QConsts.pas:112 \r Vcl/Consts.pas:61
+msgid "Printer index out of range"
+msgstr "Indice de impresora fuera de rango"
+
+#. Programmer's name for it: SInvalidPrinter\r
+#: Clx/QConsts.pas:113 \r Vcl/Consts.pas:62
+msgid "Printer selected is not valid"
+msgstr "La impresora seleccionada no es válida"
+
+#. Programmer's name for it: SDeviceOnPort\r
+#: Clx/QConsts.pas:114 \r Vcl/Consts.pas:63
+msgid "%s on %s"
+msgstr "%s en %s"
+
+#. Programmer's name for it: SGroupIndexTooLow\r
+#: Clx/QConsts.pas:115 \r Vcl/Consts.pas:64
+msgid "GroupIndex cannot be less than a previous menu item's GroupIndex"
+msgstr ""
+"GroupIndex no puede ser menor que el GroupIndex de un item del menú previo"
+
+#. Programmer's name for it: SNoMDIForm\r
+#: Clx/QConsts.pas:116 \r Vcl/Consts.pas:66
+msgid "Cannot create form. No MDI forms are currently active"
+msgstr ""
+"No se puede crear el formulario. Actualmente no hay formularios MDI activos"
+
+#. Programmer's name for it: SNotAnMDIForm\r
+#: Clx/QConsts.pas:117 \r
+msgid "Invalid MDIParent for class %s"
+msgstr "Padre MDI para la clase %s es no válido"
+
+#. Programmer's name for it: SMDIChildNotVisible\r
+#: Clx/QConsts.pas:118 \r Vcl/Consts.pas:50
+msgid "Cannot hide an MDI Child Form"
+msgstr "No se puede ocultar un formulario MDI Child"
+
+#. Programmer's name for it: SRegisterError\r
+#: Clx/QConsts.pas:119 \r Rtl/Common/RTLConsts.pas:75
+msgid "Invalid component registration"
+msgstr "Registro de componente no válido"
+
+#. Programmer's name for it: SImageCanvasNeedsBitmap\r
+#: Clx/QConsts.pas:120 \r Vcl/Consts.pas:67
+msgid "Can only modify an image if it contains a bitmap"
+msgstr "Sólo se puede modificar una imagen si contiene un bitmap"
+
+#. Programmer's name for it: SControlParentSetToSelf\r
+#: Clx/QConsts.pas:121 \r Vcl/Consts.pas:68
+msgid "A control cannot have itself as its parent"
+msgstr "Un control no puede referirse al él mismo como ancestro"
+
+#. Programmer's name for it: SOKButton\r
+#. Programmer's name for it: SMsgDlgOK\r
+#. Programmer's name for it: RSHTTPOK\r
+#. Programmer's name for it: SOKButton\r
+#. Programmer's name for it: SMsgDlgOK\r
+#. formAbout..btnOk..Caption\r
+#. IdPropEdBindingEntry..btnOk..Caption\r
+#. ClxIconViewItemsEditor..Button4..Caption\r
+#. ClxImageListEditor..OK..Caption\r
+#. ClxListViewItems..Button4..Caption\r
+#. ClxTreeViewItems..Button4..Caption\r
+#. Caption\r
+#. DSSCubeEditor..OKButton..Caption\r
+#. DSSQueryEditor..OKButton..Caption\r
+#. formAbout..Panel1..btnOk..Caption\r
+#. IdPropEdBindingEntry..btnOk..Caption\r
+#. DlgProperties..OkButton..Caption\r
+#. AboutBox..OKButton..Caption\r
+#. ConnEditForm..OkButton..Caption\r
+#. ClientDataForm..OkBtn..Caption\r
+#. DBEditForm..OkButton..Caption\r
+#. AddFields..OkBtn..Caption\r
+#. AssociateAttributes..OKBtn..Caption\r
+#. SaveAttributesAs..OKBtn..Caption\r
+#. DefineField..OkBtn..Caption\r
+#. LinkFields..Button1..Caption\r
+#. IndexFiles..Ok..Caption\r
+#. PictureEditorDlg..OKButton..Caption\r
+#. SQLEditForm..ButtonPanel..OkButton..Caption\r
+#. frmGeneratorEditor..OKBtn..Caption\r
+#. frmIBRestoreEditor..Panel1..OKBtn..Caption\r
+#. frmIBSecurityEditor..Panel1..OKBtn..Caption\r
+#. frmIBServiceEditor..Panel1..OKBtn..Caption\r
+#: Clx/QConsts.pas:122 \r Clx/QConsts.pas:170 Indy/IdResourceStrings.pas:62
+#: Vcl/Consts.pas:69 Vcl/Consts.pas:124 Indy/IdAbout.xfm:3333
+#: Indy/IdDsnPropEdBinding.xfm:53 Property\r Editors/ClxIconEdit.xfm:122
+#: Editors/ClxImgEdit.xfm:28 Editors/ClxItemEdit.xfm:148
+#: Editors/ClxNodeEdit.xfm:158 Editors/ClxPicEdit.xfm:104 Decision\r
+#: Cube/MXDCUBE.DFM:470 Cube/MXDSSQRY.DFM:323 Indy/IdAbout.dfm:68
+#: Indy/IdDsnPropEdBinding.dfm:47 Internet/SvrPropDlg.dfm:26
+#: Internet/WebAppDbgAbout.dfm:55 Editors/AdoConEd.dfm:19
+#: Editors/CDSEdit.dfm:39 Editors/Dbedit.dfm:140 Editors/DSAdd.dfm:24
+#: Editors/DSAttrA.dfm:18 Editors/DSAttrS.dfm:56 Editors/DSDefine.dfm:109
+#: Editors/FldLinks.DFM:141 Editors/Ixedit.dfm:64 Editors/PicEdit.dfm:22
+#: Editors/SqlEdit.dfm:94 Vcl/IBGeneratorEditor.dfm:51
+#: Vcl/IBRestoreEditor.dfm:51 Vcl/IBSecurityEditor.dfm:99
+#: Vcl/IBServiceEditor.dfm:122
+msgid "OK"
+msgstr "Aceptar"
+
+#. Programmer's name for it: SCancelButton\r
+#. Programmer's name for it: SMsgDlgCancel\r
+#. Programmer's name for it: SCancel\r
+#. Programmer's name for it: SCancelButton\r
+#. Programmer's name for it: SMsgDlgCancel\r
+#. LoginDialog..CancelButton..Caption\r
+#. PasswordDialog..CancelButton..Caption\r
+#. IdPropEdBindingEntry..btnCancel..Caption\r
+#. ClxIconViewItemsEditor..Cancel..Caption\r
+#. ClxImageListEditor..Cancel..Caption\r
+#. ClxListViewItems..Cancel..Caption\r
+#. ClxTreeViewItems..Cancel..Caption\r
+#. Caption\r
+#. ClxStrEditDlg..CancelButton..Caption\r
+#. DSSCubeEditor..CancelButton..Caption\r
+#. DSSQueryEditor..Cancel..Caption\r
+#. frmNewMessagePart..Panel2..btnCancel..Caption\r
+#. IdPropEdBindingEntry..btnCancel..Caption\r
+#. DlgProperties..CancelButton..Caption\r
+#. ConnEditForm..CancelButton..Caption\r
+#. ClientDataForm..CancelBtn..Caption\r
+#. DBEditForm..CancelButton..Caption\r
+#. InputReqDialog..CancelButton..Caption\r
+#. AddFields..CancelBtn..Caption\r
+#. AssociateAttributes..CancelBtn..Caption\r
+#. SaveAttributesAs..CancelBtn..Caption\r
+#. DefineField..CancelBtn..Caption\r
+#. LinkFields..Button2..Caption\r
+#. IndexFiles..Cancel..Caption\r
+#. PictureEditorDlg..CancelButton..Caption\r
+#. SQLEditForm..ButtonPanel..CancelButton..Caption\r
+#. StrEditDlg..CancelButton..Caption\r
+#. UpdateSQLEditForm..CancelButton..Caption\r
+#. LoginDialog..CancelButton..Caption\r
+#. PasswordDialog..CancelButton..Caption\r
+#. frmGeneratorEditor..CancelBtn..Caption\r
+#. frmIBRestoreEditor..Panel1..CancelBtn..Caption\r
+#. frmIBSecurityEditor..Panel1..CancelBtn..Caption\r
+#. frmIBServiceEditor..Panel1..CancelBtn..Caption\r
+#: Clx/QConsts.pas:123 \r Clx/QConsts.pas:171 Clx/QConsts.pas:282
+#: Vcl/Consts.pas:70 Vcl/Consts.pas:125 Clx/QDBLogDlg.xfm:31
+#: Clx/QDBPWDlg.xfm:33 Indy/IdDsnPropEdBinding.xfm:65 Property\r
+#: Editors/ClxIconEdit.xfm:133 Editors/ClxImgEdit.xfm:40
+#: Editors/ClxItemEdit.xfm:159 Editors/ClxNodeEdit.xfm:169
+#: Editors/ClxPicEdit.xfm:25 Editors/ClxStrEdit.xfm:54 Decision\r
+#: Cube/MXDCUBE.DFM:480 Cube/MXDSSQRY.DFM:313 Indy/IdDsnNewMessagePart.dfm:44
+#: Indy/IdDsnPropEdBinding.dfm:59 Internet/SvrPropDlg.dfm:38
+#: Editors/AdoConEd.dfm:30 Editors/CDSEdit.dfm:52 Editors/Dbedit.dfm:152
+#: Editors/dbinpreq.dfm:29 Editors/DSAdd.dfm:36 Editors/DSAttrA.dfm:30
+#: Editors/DSAttrS.dfm:67 Editors/DSDefine.dfm:121 Editors/FldLinks.DFM:153
+#: Editors/Ixedit.dfm:75 Editors/PicEdit.dfm:33 Editors/SqlEdit.dfm:106
+#: Editors/StrEdit.dfm:50 Editors/UpdSqlEd.dfm:32 Vcl/DBLOGDLG.dfm:32
+#: Vcl/DbPWDlg.dfm:31 Vcl/IBGeneratorEditor.dfm:62 Vcl/IBRestoreEditor.dfm:62
+#: Vcl/IBSecurityEditor.dfm:110 Vcl/IBServiceEditor.dfm:133
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. Programmer's name for it: SYesButton\r
+#. Programmer's name for it: SMsgDlgYes\r
+#. Programmer's name for it: SYesButton\r
+#. Programmer's name for it: SMsgDlgYes\r
+#: Clx/QConsts.pas:124 \r Clx/QConsts.pas:168 Vcl/Consts.pas:71
+#: Vcl/Consts.pas:122
+msgid "&Yes"
+msgstr "&Sí"
+
+#. Programmer's name for it: SNoButton\r
+#. Programmer's name for it: SMsgDlgNo\r
+#. Programmer's name for it: SNoButton\r
+#. Programmer's name for it: SMsgDlgNo\r
+#: Clx/QConsts.pas:125 \r Clx/QConsts.pas:169 Vcl/Consts.pas:72
+#: Vcl/Consts.pas:123
+msgid "&No"
+msgstr "&No"
+
+#. Programmer's name for it: SHelpButton\r
+#. Programmer's name for it: SMsgDlgHelp\r
+#. Programmer's name for it: SHelpButton\r
+#. Programmer's name for it: SMsgDlgHelp\r
+#. ClxIconViewItemsEditor..Button7..Caption\r
+#. ClxImageListEditor..Help..Caption\r
+#. ClxListViewItems..Button7..Caption\r
+#. ClxTreeViewItems..Help..Caption\r
+#. Caption\r
+#. ClxStrEditDlg..HelpButton..Caption\r
+#. DSSCubeEditor..HelpButton..Caption\r
+#. DSSQueryEditor..HelpButton..Caption\r
+#. WebAppDbgMainForm..MainMenu1..Help1..Caption\r
+#. DlgProperties..Button1..Caption\r
+#. ConnEditForm..HelpButton..Caption\r
+#. ClientDataForm..HelpBtn..Caption\r
+#. DBEditForm..HelpButton..Caption\r
+#. DataBindForm..HelpBtn..Caption\r
+#. AddFields..HelpBtn..Caption\r
+#. AssociateAttributes..HelpBtn..Caption\r
+#. SaveAttributesAs..HelpBtn..Caption\r
+#. DefineField..HelpBtn..Caption\r
+#. LinkFields..Help..Caption\r
+#. IndexFiles..Help..Caption\r
+#. PictureEditorDlg..HelpButton..Caption\r
+#. SQLEditForm..ButtonPanel..HelpButton..Caption\r
+#. StrEditDlg..HelpButton..Caption\r
+#. UpdateSQLEditForm..HelpButton..Caption\r
+#. frmIBRestoreEditor..Panel1..HelpBtn..Caption\r
+#. frmIBSecurityEditor..Panel1..HelpBtn..Caption\r
+#. frmIBServiceEditor..Panel1..HelpBtn..Caption\r
+#: Clx/QConsts.pas:126 \r Clx/QConsts.pas:172 Vcl/Consts.pas:73
+#: Vcl/Consts.pas:126 Property\r Editors/ClxIconEdit.xfm:153
+#: Editors/ClxImgEdit.xfm:143 Editors/ClxItemEdit.xfm:179
+#: Editors/ClxNodeEdit.xfm:189 Editors/ClxPicEdit.xfm:36
+#: Editors/ClxStrEdit.xfm:64 Decision\r Cube/MXDCUBE.DFM:491
+#: Cube/MXDSSQRY.DFM:333 Internet/SvrMainForm.dfm:199
+#: Internet/SvrPropDlg.dfm:207 Editors/AdoConEd.dfm:39 Editors/CDSEdit.dfm:61
+#: Editors/Dbedit.dfm:161 Editors/DbOleEdt.dfm:128 Editors/DSAdd.dfm:65
+#: Editors/DSAttrA.dfm:40 Editors/DSAttrS.dfm:77 Editors/DSDefine.dfm:130
+#: Editors/FldLinks.DFM:162 Editors/Ixedit.dfm:84 Editors/PicEdit.dfm:42
+#: Editors/SqlEdit.dfm:116 Editors/StrEdit.dfm:30 Editors/UpdSqlEd.dfm:41
+#: Vcl/IBRestoreEditor.dfm:71 Vcl/IBSecurityEditor.dfm:119
+#: Vcl/IBServiceEditor.dfm:142
+msgid "&Help"
+msgstr "Ay&uda"
+
+#. Programmer's name for it: SCloseButton\r
+#. LogDetail..ActionList1..CloseAction..Caption\r
+#. CustomizeFrm..CloseMenu..CloseItem..Caption\r
+#. SocketForm..PopupMenu..miClose..Caption\r
+#: Clx/QConsts.pas:127 \r Vcl/Consts.pas:74 Internet/SvrLogDetailDlg.dfm:80
+#: Vcl/CustomizeDlg.dfm:372 Vcl/ScktMain.dfm:319
+msgid "&Close"
+msgstr "&Cerrar"
+
+#. Programmer's name for it: SIgnoreButton\r
+#. Programmer's name for it: SMsgDlgIgnore\r
+#. Programmer's name for it: SIgnoreButton\r
+#. Programmer's name for it: SMsgDlgIgnore\r
+#: Clx/QConsts.pas:128 \r Clx/QConsts.pas:177 Vcl/Consts.pas:75
+#: Vcl/Consts.pas:131
+msgid "&Ignore"
+msgstr "&Ignorar"
+
+#. Programmer's name for it: SRetryButton\r
+#. Programmer's name for it: SMsgDlgRetry\r
+#. Programmer's name for it: SRetryButton\r
+#. Programmer's name for it: SMsgDlgRetry\r
+#: Clx/QConsts.pas:129 \r Clx/QConsts.pas:176 Vcl/Consts.pas:76
+#: Vcl/Consts.pas:130
+msgid "&Retry"
+msgstr "&Reintentar"
+
+#. Programmer's name for it: SAbortButton\r
+#: Clx/QConsts.pas:130 \r Vcl/Consts.pas:77
+msgid "Abort"
+msgstr "Abortar"
+
+#. Programmer's name for it: SAllButton\r
+#. Programmer's name for it: SMsgDlgAll\r
+#. Programmer's name for it: SAllButton\r
+#. Programmer's name for it: SMsgDlgAll\r
+#: Clx/QConsts.pas:131 \r Clx/QConsts.pas:178 Vcl/Consts.pas:78
+#: Vcl/Consts.pas:132
+msgid "&All"
+msgstr "&Todo"
+
+#. Programmer's name for it: SCannotDragForm\r
+#: Clx/QConsts.pas:133 \r Vcl/Consts.pas:80
+msgid "Cannot drag a form"
+msgstr "No se puede arrastrar un formulario"
+
+#. Programmer's name for it: SPutObjectError\r
+#: Clx/QConsts.pas:134 \r Vcl/Consts.pas:81
+msgid "PutObject to undefined item"
+msgstr "Elemento no definido para PutObject"
+
+#. Programmer's name for it: SFB\r
+#: Clx/QConsts.pas:136 \r Vcl/Consts.pas:90
+msgid "FB"
+msgstr "FB"
+
+#. Programmer's name for it: SFG\r
+#: Clx/QConsts.pas:137 \r Vcl/Consts.pas:91
+msgid "FG"
+msgstr "FG"
+
+#. Programmer's name for it: SBG\r
+#: Clx/QConsts.pas:138 \r Vcl/Consts.pas:92
+msgid "BG"
+msgstr "BG"
+
+#. Programmer's name for it: SVIcons\r
+#: Clx/QConsts.pas:139 \r Vcl/Consts.pas:96
+msgid "Icons"
+msgstr "Iconos"
+
+#. Programmer's name for it: SVBitmaps\r
+#: Clx/QConsts.pas:140 \r Vcl/Consts.pas:97
+msgid "Bitmaps"
+msgstr "Mapas de bit"
+
+#. Programmer's name for it: SVPixmaps\r
+#: Clx/QConsts.pas:141 \r
+msgid "Pixmaps"
+msgstr "Pixmaps"
+
+#. Programmer's name for it: SVPNGs\r
+#: Clx/QConsts.pas:142 \r
+msgid "PNGs"
+msgstr "PNGs"
+
+#. Programmer's name for it: SDrawings\r
+#: Clx/QConsts.pas:143 \r
+msgid "Drawings"
+msgstr "Dibujos"
+
+#. Programmer's name for it: SGridTooLarge\r
+#: Clx/QConsts.pas:144 \r Vcl/Consts.pas:98 Rtl/Common/RTLConsts.pas:31
+msgid "Grid too large for operation"
+msgstr "Rejilla demasiado grande para la operación"
+
+#. Programmer's name for it: STooManyDeleted\r
+#: Clx/QConsts.pas:145 \r Vcl/Consts.pas:99 Rtl/Common/RTLConsts.pas:83
+msgid "Too many rows or columns deleted"
+msgstr "Demasiadas filas o columnas eliminadas"
+
+#. Programmer's name for it: SIndexOutOfRange\r
+#: Clx/QConsts.pas:146 \r Vcl/Consts.pas:100 Rtl/Common/RTLConsts.pas:33
+msgid "Grid index out of range"
+msgstr "Indice de la rejilla fuera de rango"
+
+#. Programmer's name for it: SFixedColTooBig\r
+#: Clx/QConsts.pas:147 \r Vcl/Consts.pas:101 Rtl/Common/RTLConsts.pas:28
+msgid "Fixed column count must be less than column count"
+msgstr ""
+"El número de columnas fijas debe ser menor que el número total de columnas"
+
+#. Programmer's name for it: SFixedRowTooBig\r
+#: Clx/QConsts.pas:148 \r Vcl/Consts.pas:102 Rtl/Common/RTLConsts.pas:29
+msgid "Fixed row count must be less than row count"
+msgstr "El número de filas fijas debe ser menor que el número total de filas"
+
+#. Programmer's name for it: SInvalidStringGridOp\r
+#: Clx/QConsts.pas:149 \r Vcl/Consts.pas:103 Rtl/Common/RTLConsts.pas:54
+msgid "Cannot insert or delete rows from grid"
+msgstr "No se puede insertar o eliminar filas de la rejilla"
+
+#. Programmer's name for it: SParseError\r
+#: Clx/QConsts.pas:150 \r Rtl/Common/RTLConsts.pas:67
+msgid "%s on line %d"
+msgstr "%s en la linea %d"
+
+#. Programmer's name for it: SIdentifierExpected\r
+#: Clx/QConsts.pas:151 \r Rtl/Common/RTLConsts.pas:32
+msgid "Identifier expected"
+msgstr "Se esperaba un identificador"
+
+#. Programmer's name for it: SStringExpected\r
+#: Clx/QConsts.pas:152 \r Rtl/Common/RTLConsts.pas:80
+msgid "String expected"
+msgstr "Se esperaba una cadena"
+
+#. Programmer's name for it: SNumberExpected\r
+#: Clx/QConsts.pas:153 \r Rtl/Common/RTLConsts.pas:66
+msgid "Number expected"
+msgstr "Se esperaba un número"
+
+#. Programmer's name for it: SCharExpected\r
+#: Clx/QConsts.pas:154 \r Rtl/Common/RTLConsts.pas:19
+msgid "''%s'' expected"
+msgstr "Se esperaba '%s'"
+
+#. Programmer's name for it: SSymbolExpected\r
+#: Clx/QConsts.pas:155 \r Rtl/Common/RTLConsts.pas:81
+msgid "%s expected"
+msgstr "Se esperaba %s"
+
+#. Programmer's name for it: SInvalidNumber\r
+#: Clx/QConsts.pas:156 \r Vcl/Consts.pas:105
+msgid "Invalid numeric value"
+msgstr "Valor numérico no válido"
+
+#. Programmer's name for it: SInvalidString\r
+#: Clx/QConsts.pas:157 \r Rtl/Common/RTLConsts.pas:53
+msgid "Invalid string constant"
+msgstr "Constante de cadena no válida"
+
+#. Programmer's name for it: SInvalidBinary\r
+#: Clx/QConsts.pas:159 \r Rtl/Common/RTLConsts.pas:39
+msgid "Invalid binary value"
+msgstr "Valor binario no válido"
+
+#. Programmer's name for it: SInvalidCurrentItem\r
+#: Clx/QConsts.pas:160 \r Vcl/Consts.pas:108
+msgid "Invalid value for current item"
+msgstr "Valor no válido para el elemento actual"
+
+#. Programmer's name for it: SMaskErr\r
+#: Clx/QConsts.pas:161 \r Vcl/Consts.pas:109 Rtl/Common/RTLConsts.pas:61
+msgid "Invalid input value"
+msgstr "Valor de entrada no válido"
+
+#. Programmer's name for it: SMaskEditErr\r
+#: Clx/QConsts.pas:162 \r Vcl/Consts.pas:110 Rtl/Common/RTLConsts.pas:62
+msgid "Invalid input value.  Use escape key to abandon changes"
+msgstr ""
+"Valor de entrada no válido. Use la tecla ESC para abandonar los cambios"
+
+#. Programmer's name for it: SMsgDlgWarning\r
+#: Clx/QConsts.pas:164 \r Vcl/Consts.pas:118
+msgid "Warning"
+msgstr "Aviso"
+
+#. Programmer's name for it: SMsgDlgError\r
+#: Clx/QConsts.pas:165 \r Vcl/Consts.pas:119
+msgid "Error"
+msgstr "Error"
+
+#. Programmer's name for it: SMsgDlgInformation\r
+#: Clx/QConsts.pas:166 \r Vcl/Consts.pas:120
+msgid "Information"
+msgstr "Información"
+
+#. Programmer's name for it: SMsgDlgConfirm\r
+#. Programmer's name for it: SConfirmCaption\r
+#. Programmer's name for it: SMsgDlgConfirm\r
+#. Programmer's name for it: SConfirmCaption\r
+#: Clx/QConsts.pas:167 \r Clx/QDBConsts.pas:29 Vcl/Consts.pas:121
+#: Vcl/VDBConsts.pas:28
+msgid "Confirm"
+msgstr "Confirmación"
+
+#. Programmer's name for it: SMsgDlgHelpNone\r
+#: Clx/QConsts.pas:173 \r Vcl/Consts.pas:127
+msgid "No help available"
+msgstr "No hay ayuda disponible"
+
+#. Programmer's name for it: SMsgDlgHelpHelp\r
+#. Programmer's name for it: SHelp\r
+#. Programmer's name for it: SMsgDlgHelpHelp\r
+#. StandardActions..ActionList1..HelpContents1..Category\r
+#. StandardActions..ActionList1..HelpOnHelp1..Category\r
+#. StandardActions..ActionList1..HelpTopicSearch1..Category\r
+#. StandardActions..ActionList1..HelpContextAction1..Category\r
+#. frmGeneratorEditor..HelpBtn..Caption\r
+#: Clx/QConsts.pas:174 \r Clx/QConsts.pas:283 Vcl/Consts.pas:128
+#: Vcl/ActnRes.dfm:85 Vcl/ActnRes.dfm:91 Vcl/ActnRes.dfm:96
+#: Vcl/ActnRes.dfm:260 Vcl/IBGeneratorEditor.dfm:104
+msgid "Help"
+msgstr "Ayuda"
+
+#. Programmer's name for it: SMsgDlgAbort\r
+#: Clx/QConsts.pas:175 \r Vcl/Consts.pas:129
+msgid "&Abort"
+msgstr "&Abortar"
+
+#. Programmer's name for it: SMsgDlgNoToAll\r
+#: Clx/QConsts.pas:179 \r Vcl/Consts.pas:133
+msgid "N&o to All"
+msgstr "N&o a todo"
+
+#. Programmer's name for it: SMsgDlgYesToAll\r
+#: Clx/QConsts.pas:180 \r Vcl/Consts.pas:134
+msgid "Yes to &All"
+msgstr "Sí a &todo"
+
+#. Programmer's name for it: srUnknown\r
+#. Programmer's name for it: SUnknown\r
+#. Programmer's name for it: srUnknown\r
+#. Programmer's name for it: SHostUnknown\r
+#: Clx/QConsts.pas:182 \r ToolsAPI/DesignConst.pas:31 Vcl/Consts.pas:155
+#: Vcl/ScktCnst.pas:34
+msgid "(Unknown)"
+msgstr "(Desconocido)"
+
+#. Programmer's name for it: srNone\r
+#. Programmer's name for it: SNoIndexFiles\r
+#. Programmer's name for it: srNone\r
+#: Clx/QConsts.pas:183 \r ToolsAPI/DesignConst.pas:13 Vcl/bdeconst.pas:61
+#: Vcl/Consts.pas:156
+msgid "(None)"
+msgstr "(Ninguno)"
+
+#. Programmer's name for it: SOutOfRange\r
+#: Clx/QConsts.pas:184 \r Vcl/Consts.pas:157
+msgid "Value must be between %d and %d"
+msgstr "El valor debe hallarse entre %d y %d"
+
+#. Programmer's name for it: SUnnamed\r
+#: Clx/QConsts.pas:185 \r
+msgid "Unnamed"
+msgstr "Sin nombre"
+
+#. Programmer's name for it: SDateEncodeError\r
+#: Clx/QConsts.pas:187 \r Vcl/Consts.pas:159 Rtl/Sys/SysConst.pas:26
+msgid "Invalid argument to date encode"
+msgstr "Argumento no válido para codificar fecha"
+
+#. Programmer's name for it: STimeEncodeError\r
+#: Clx/QConsts.pas:188 \r Rtl/Common/RTLConsts.pas:82 Rtl/Sys/SysConst.pas:25
+msgid "Invalid argument to time encode"
+msgstr "Argumento para codificar la hora no válido"
+
+#. Programmer's name for it: SInvalidDate\r
+#: Clx/QConsts.pas:189 \r Rtl/Common/RTLConsts.pas:40
+msgid "''%s'' is not a valid date"
+msgstr "'%s' no es una fecha válida"
+
+#. Programmer's name for it: SInvalidTime\r
+#: Clx/QConsts.pas:190 \r Rtl/Common/RTLConsts.pas:55
+msgid "''%s'' is not a valid time"
+msgstr "'%s' no es una hora válida"
+
+#. Programmer's name for it: SInvalidDateTime\r
+#: Clx/QConsts.pas:191 \r Rtl/Common/RTLConsts.pas:41
+msgid "''%s'' is not a valid date and time"
+msgstr "'%s' no es una fecha y hora válidas"
+
+#. Programmer's name for it: SInvalidFileName\r
+#: Clx/QConsts.pas:192 \r Rtl/Common/RTLConsts.pas:42
+msgid "Invalid file name - %s"
+msgstr "Nombre de archivo no válido - %s"
+
+#. Programmer's name for it: SDefaultFilter\r
+#: Clx/QConsts.pas:193 \r Vcl/Consts.pas:160
+msgid "All files (*.*)|*.*"
+msgstr "Todos los archivos (*.*)|*.*"
+
+#. Programmer's name for it: SInsertLineError\r
+#: Clx/QConsts.pas:194 \r Vcl/Consts.pas:163
+msgid "Unable to insert a line"
+msgstr "Incapaz de insertar una línea"
+
+#. Programmer's name for it: SConfirmCreateDir\r
+#: Clx/QConsts.pas:196 \r Vcl/Consts.pas:165
+msgid "The specified directory does not exist. Create it?"
+msgstr "La carpeta especificada no existe. ¿Crearla?"
+
+#. Programmer's name for it: SSelectDirCap\r
+#: Clx/QConsts.pas:197 \r Vcl/Consts.pas:166
+msgid "Select Directory"
+msgstr "Seleccione una carpeta"
+
+#. Programmer's name for it: SCannotCreateDir\r
+#: Clx/QConsts.pas:198 \r Rtl/Sys/SysConst.pas:165
+msgid "Unable to create directory"
+msgstr "Incapaz de crear directorio"
+
+#. Programmer's name for it: SDirNameCap\r
+#: Clx/QConsts.pas:199 \r Vcl/Consts.pas:167
+msgid "Directory &Name:"
+msgstr "&Nombre de carpeta:"
+
+#. Programmer's name for it: SDrivesCap\r
+#: Clx/QConsts.pas:200 \r Vcl/Consts.pas:168
+msgid "D&rives:"
+msgstr "&Discos:"
+
+#. Programmer's name for it: SDirsCap\r
+#: Clx/QConsts.pas:201 \r Vcl/Consts.pas:169
+msgid "&Directories:"
+msgstr "&Carpetas:"
+
+#. Programmer's name for it: SFilesCap\r
+#: Clx/QConsts.pas:202 \r Vcl/Consts.pas:170
+msgid "&Files: (*.*)"
+msgstr "&Archivos:"
+
+#. Programmer's name for it: SNetworkCap\r
+#: Clx/QConsts.pas:203 \r Vcl/Consts.pas:171
+msgid "Ne&twork..."
+msgstr "&Red..."
+
+#. Programmer's name for it: SInvalidClipFmt\r
+#: Clx/QConsts.pas:205 \r Vcl/Consts.pas:176
+msgid "Invalid clipboard format"
+msgstr "El formato del portapapeles no es válido"
+
+#. Programmer's name for it: SIconToClipboard\r
+#: Clx/QConsts.pas:206 \r Vcl/Consts.pas:177
+msgid "Clipboard does not support Icons"
+msgstr "El portapapeles no soporta iconos"
+
+#. Programmer's name for it: SCannotOpenClipboard\r
+#: Clx/QConsts.pas:207 \r Vcl/Consts.pas:178
+msgid "Cannot open clipboard"
+msgstr "No se puede abrir el portapapeles"
+
+#. Programmer's name for it: SInvalidActionRegistration\r
+#: Clx/QConsts.pas:209 \r Vcl/Consts.pas:242 Rtl/Common/RTLConsts.pas:37
+msgid "Invalid action registration"
+msgstr "Acción de registro no válida"
+
+#. Programmer's name for it: SInvalidActionUnregistration\r
+#: Clx/QConsts.pas:210 \r Vcl/Consts.pas:243 Rtl/Common/RTLConsts.pas:38
+msgid "Invalid action unregistration"
+msgstr "Acción de eliminación del registro no válida"
+
+#. Programmer's name for it: SInvalidActionEnumeration\r
+#: Clx/QConsts.pas:211 \r Vcl/Consts.pas:244 Rtl/Common/RTLConsts.pas:36
+msgid "Invalid action enumeration"
+msgstr "Acción de enumeración no válida"
+
+#. Programmer's name for it: SInvalidActionCreation\r
+#: Clx/QConsts.pas:212 \r Vcl/Consts.pas:245 Rtl/Common/RTLConsts.pas:35
+msgid "Invalid action creation"
+msgstr "Acción de creación no válida"
+
+#. Programmer's name for it: SDefault\r
+#. Programmer's name for it: sHTTPItemDefault\r
+#. Programmer's name for it: SDefault\r
+#. SQLWindow..DBGrid1..TitleFont.Name\r
+#. DSSQueryEditor..Pager..Dimensions..AddAgg..Font.Name\r
+#. CustomizeFrm..Tabs..OptionsTab..MenuAnimationStyles..Text\r
+#: Clx/QConsts.pas:214 \r Internet/WebConst.pas:30 Vcl/Consts.pas:180 Decision\r
+#: Cube/MXDSQL.DFM:21 Cube/MXDSSQRY.DFM:195 Vcl/CustomizeDlg.dfm:357
+msgid "Default"
+msgstr "Por defecto"
+
+#. Programmer's name for it: SInvalidMemoSize\r
+#: Clx/QConsts.pas:216 \r Vcl/Consts.pas:182
+msgid "Text exceeds memo capacity"
+msgstr "El texto excede la capacidad de la memoria"
+
+#. Programmer's name for it: SCustomColors\r
+#: Clx/QConsts.pas:217 \r Vcl/Consts.pas:183
+msgid "Custom Colors"
+msgstr "Colores personalizados"
+
+#. Programmer's name for it: SInvalidPrinterOp\r
+#: Clx/QConsts.pas:218 \r Vcl/Consts.pas:184
+msgid "Operation not supported on selected printer"
+msgstr "Operación no soportada por la impresora seleccionada"
+
+#. Programmer's name for it: SNoDefaultPrinter\r
+#: Clx/QConsts.pas:219 \r Vcl/Consts.pas:185
+msgid "There is no default printer currently selected"
+msgstr "Actualmente no hay impresora seleccionada por defecto"
+
+#. Programmer's name for it: SIniFileWriteError\r
+#: Clx/QConsts.pas:221 \r Vcl/Consts.pas:187 Rtl/Common/RTLConsts.pas:34
+msgid "Unable to write to %s"
+msgstr "Incapaz de escribir en %s"
+
+#. Programmer's name for it: SBitsIndexError\r
+#: Clx/QConsts.pas:223 \r Vcl/Consts.pas:189 Rtl/Common/RTLConsts.pas:16
+msgid "Bits index out of range"
+msgstr "Indice de bits fuera de rango"
+
+#. Programmer's name for it: SUntitled\r
+#: Clx/QConsts.pas:225 \r Vcl/Consts.pas:191
+msgid "(Untitled)"
+msgstr "(Sin título)"
+
+#. Programmer's name for it: SDuplicateMenus\r
+#: Clx/QConsts.pas:227 \r Vcl/Consts.pas:196
+msgid "Menu '%s' is already being used by another form"
+msgstr "El menú '%s' está siendo actualmente usado en otro formulario"
+
+#. Programmer's name for it: SPictureLabel\r
+#: Clx/QConsts.pas:229 \r Vcl/Consts.pas:198
+msgid "Picture:"
+msgstr "Imagen:"
+
+#. Programmer's name for it: SPictureDesc\r
+#: Clx/QConsts.pas:230 \r Vcl/Consts.pas:199
+msgid " (%dx%d)"
+msgstr " (%dx%d)"
+
+#. Programmer's name for it: SPreviewLabel\r
+#: Clx/QConsts.pas:231 \r Vcl/Consts.pas:200
+msgid "Preview"
+msgstr "Previsualización"
+
+#. Programmer's name for it: SBoldItalicFont\r
+#: Clx/QConsts.pas:233 \r Vcl/Consts.pas:221
+msgid "Bold Italic"
+msgstr "Negrita itálica"
+
+#. Programmer's name for it: SBoldFont\r
+#. StandardActions..ActionList1..RichEditBold1..Hint\r
+#: Clx/QConsts.pas:234 \r Vcl/Consts.pas:222 Vcl/ActnRes.dfm:129
+msgid "Bold"
+msgstr "Negrita"
+
+#. Programmer's name for it: SItalicFont\r
+#. StandardActions..ActionList1..RichEditItalic1..Hint\r
+#: Clx/QConsts.pas:235 \r Vcl/Consts.pas:223 Vcl/ActnRes.dfm:137
+msgid "Italic"
+msgstr "Itálica"
+
+#. Programmer's name for it: SRegularFont\r
+#: Clx/QConsts.pas:236 \r Vcl/Consts.pas:224
+msgid "Regular"
+msgstr "Normal"
+
+#. Programmer's name for it: SPropertiesVerb\r
+#. SocketForm..Pages..PropPage..Caption\r
+#: Clx/QConsts.pas:238 \r Vcl/Consts.pas:226 Vcl/ScktMain.dfm:31
+msgid "Properties"
+msgstr "Propiedades"
+
+#. Programmer's name for it: sAsyncSocketError\r
+#: Clx/QConsts.pas:240 \r Rtl/Common/RTLConsts.pas:113
+msgid "Asynchronous socket error %d"
+msgstr "Hay un error de socket asíncrono %d"
+
+#. Programmer's name for it: sNoAddress\r
+#: Clx/QConsts.pas:241 \r Rtl/Common/RTLConsts.pas:114
+msgid "No address specified"
+msgstr "Dirección no especificada"
+
+#. Programmer's name for it: sCannotListenOnOpen\r
+#: Clx/QConsts.pas:242 \r Rtl/Common/RTLConsts.pas:115
+msgid "Can't listen on an open socket"
+msgstr "No puede escucharse un socket abierto"
+
+#. Programmer's name for it: sCannotCreateSocket\r
+#: Clx/QConsts.pas:243 \r Rtl/Common/RTLConsts.pas:116
+msgid "Can't create new socket"
+msgstr "No puede crearse un nuevo socket"
+
+#. Programmer's name for it: sSocketAlreadyOpen\r
+#: Clx/QConsts.pas:244 \r Rtl/Common/RTLConsts.pas:117
+msgid "Socket already open"
+msgstr "El socket ya está abierto"
+
+#. Programmer's name for it: sCantChangeWhileActive\r
+#: Clx/QConsts.pas:245 \r Rtl/Common/RTLConsts.pas:118
+msgid "Can't change value while socket is active"
+msgstr "No puede cambiarse el valor mientras el socket está activo"
+
+#. Programmer's name for it: sSocketMustBeBlocking\r
+#: Clx/QConsts.pas:246 \r Rtl/Common/RTLConsts.pas:119
+msgid "Socket must be in blocking mode"
+msgstr "El socket debe estar en modo bloqueado"
+
+#. Programmer's name for it: sSocketIOError\r
+#: Clx/QConsts.pas:247 \r Rtl/Common/RTLConsts.pas:120
+msgid "%s error %d, %s"
+msgstr "%s error %d, %s"
+
+#. Programmer's name for it: sSocketRead\r
+#. Programmer's name for it: SReadAccess\r
+#: Clx/QConsts.pas:248 \r Rtl/Common/RTLConsts.pas:121 Rtl/Sys/SysConst.pas:66
+msgid "Read"
+msgstr "Leer"
+
+#. Programmer's name for it: sSocketWrite\r
+#. Programmer's name for it: SWriteAccess\r
+#: Clx/QConsts.pas:249 \r Rtl/Common/RTLConsts.pas:122 Rtl/Sys/SysConst.pas:67
+msgid "Write"
+msgstr "Escribir"
+
+#. Programmer's name for it: SAllCommands\r
+#: Clx/QConsts.pas:251 \r Vcl/Consts.pas:252
+msgid "All Commands"
+msgstr "Todos los comandos"
+
+#. Programmer's name for it: SDuplicateItem\r
+#: Clx/QConsts.pas:253 \r Vcl/Consts.pas:254 Rtl/Common/RTLConsts.pas:24
+msgid "List does not allow duplicates ($0%x)"
+msgstr "La lista no permite duplicados ($0%x)"
+
+#. Programmer's name for it: SDuplicatePropertyCategory\r
+#: Clx/QConsts.pas:255 \r
+msgid "A property category called %s already exists"
+msgstr "Una categoría de propiedad con nombre %s ya existe"
+
+#. Programmer's name for it: SUnknownPropertyCategory\r
+#: Clx/QConsts.pas:256 \r
+msgid "Property category does not exist (%s)"
+msgstr "No existe categoría de pripiedad (%s)"
+
+#. Programmer's name for it: SInvalidMask\r
+#: Clx/QConsts.pas:258 \r Rtl/Common/RTLConsts.pas:45
+msgid "'%s' is an invalid mask at (%d)"
+msgstr "'%s' es una máscara no válida en (%d)"
+
+#. Programmer's name for it: SInvalidFilter\r
+#. Programmer's name for it: sInvalidFilter\r
+#: Clx/QConsts.pas:259 \r ToolsAPI/DesignIntf.pas:475
+msgid "Property filters may only be name, class or type based (%d:%d)"
+msgstr ""
+"Los filtros de propiedad deben ser nombres, clases o tipos de clases (%d:%d)"
+
+#. Programmer's name for it: SInvalidCategory\r
+#: Clx/QConsts.pas:260 \r
+msgid "Categories must define their own name and description"
+msgstr "Las categorias deben definir su propio nombre y descripción"
+
+#. Programmer's name for it: sOperationNotAllowed\r
+#: Clx/QConsts.pas:262 \r
+msgid "Operation not allowed while dispatching application events"
+msgstr ""
+
+#. Programmer's name for it: STextNotFound\r
+#: Clx/QConsts.pas:263 \r Vcl/Consts.pas:256
+msgid "Text not found: \"%s\""
+msgstr "Texto no encontrado: \"%s\""
+
+#. Programmer's name for it: SImageIndexError\r
+#: Clx/QConsts.pas:265 \r Vcl/Consts.pas:40
+msgid "Invalid ImageList Index"
+msgstr "Indice de ImageList no válido"
+
+#. Programmer's name for it: SReplaceImage\r
+#: Clx/QConsts.pas:266 \r Vcl/Consts.pas:39
+msgid "Unable to Replace Image"
+msgstr "Incapaz de reemplazar imagen"
+
+#. Programmer's name for it: SInvalidImageType\r
+#: Clx/QConsts.pas:267 \r
+msgid "Invalid image type"
+msgstr "Tipo de imagen no válido"
+
+#. Programmer's name for it: SInvalidImageDimensions\r
+#: Clx/QConsts.pas:268 \r
+msgid "Image width and heigth must match"
+msgstr "El ancho y alto de la imagen deben coincidir"
+
+#. Programmer's name for it: SInvalidImageDimension\r
+#: Clx/QConsts.pas:269 \r
+msgid "Invalid image dimension"
+msgstr "Dimensión de imagen no válida"
+
+#. Programmer's name for it: SErrorResizingImageList\r
+#: Clx/QConsts.pas:270 \r
+msgid "Error resizing ImageList"
+msgstr "Error cambiando el tamaño del ImageList"
+
+#. Programmer's name for it: SInvalidRangeError\r
+#: Clx/QConsts.pas:272 \r
+msgid "Range of %d to %d is invalid"
+msgstr "El rango de %d a %d es no válido"
+
+#. Programmer's name for it: SInvalidMimeSourceStream\r
+#: Clx/QConsts.pas:273 \r
+msgid "MimeSource format must have an associated data stream"
+msgstr ""
+"El formato del MimeSource debe tener un conjunto (stream) de datos asociado"
+
+#. Programmer's name for it: SMimeNotSupportedForIcon\r
+#: Clx/QConsts.pas:274 \r
+msgid "Mime format not supported for TIcon"
+msgstr "Formato Mime no soportado para TIcon"
+
+#. Programmer's name for it: SSave\r
+#. Title\r
+#: Clx/QConsts.pas:277 \r Property\r Editors/ClxPicEdit.xfm:117
+msgid "Save As"
+msgstr "Grabar como"
+
+#. Programmer's name for it: SFindWhat\r
+#: Clx/QConsts.pas:278 \r
+msgid "Fi&nd what:"
+msgstr ""
+
+#. Programmer's name for it: SWholeWord\r
+#: Clx/QConsts.pas:279 \r
+msgid "Match &whole word only"
+msgstr ""
+
+#. Programmer's name for it: SMatchCase\r
+#: Clx/QConsts.pas:280 \r
+msgid "Match &case"
+msgstr ""
+
+#. Programmer's name for it: SFindNext\r
+#: Clx/QConsts.pas:281 \r
+msgid "&Find Next"
+msgstr ""
+
+#. Programmer's name for it: SFindTitle\r
+#: Clx/QConsts.pas:284 \r
+msgid "Find"
+msgstr "Buscar"
+
+#. Programmer's name for it: SDirection\r
+#: Clx/QConsts.pas:285 \r
+msgid "Direction"
+msgstr "Dirección"
+
+#. Programmer's name for it: SUp\r
+#: Clx/QConsts.pas:286 \r
+msgid "&Up"
+msgstr "&Arriba"
+
+#. Programmer's name for it: SDown\r
+#: Clx/QConsts.pas:287 \r
+msgid "&Down"
+msgstr "A&bajo"
+
+#. Programmer's name for it: SReplaceWith\r
+#: Clx/QConsts.pas:288 \r
+msgid "Rep&lace with:"
+msgstr "Reemp&lazar con:"
+
+#. Programmer's name for it: SReplace\r
+#. StandardActions..ActionList1..SearchReplace1..Caption\r
+#: Clx/QConsts.pas:289 \r Vcl/ActnRes.dfm:165
+msgid "&Replace"
+msgstr "&Reemplazar"
+
+#. Programmer's name for it: SReplaceTitle\r
+#: Clx/QConsts.pas:290 \r
+msgid "Replace"
+msgstr "Reemplazar"
+
+#. Programmer's name for it: SReplaceAll\r
+#: Clx/QConsts.pas:291 \r
+msgid "Replace &All"
+msgstr "Reemplaz&ar todo"
+
+#. Programmer's name for it: SOverwriteCaption\r
+#: Clx/QConsts.pas:292 \r
+msgid "Save %s as"
+msgstr "Grabar %s como"
+
+#. Programmer's name for it: SOverwriteText\r
+#: Clx/QConsts.pas:293 \r
+msgid "%s already exists.Do you want to replace it?"
+msgstr ""
+
+#. Programmer's name for it: SFileMustExist\r
+#: Clx/QConsts.pas:295 \r
+msgid "%sFile not found.Please verify the correct filename was given."
+msgstr ""
+"\"%s\"\n"
+"Archivo no encontrado.\n"
+"Por favor verifique el nombre del archivo."
+
+#. Programmer's name for it: SPathMustExist\r
+#: Clx/QConsts.pas:297 \r
+msgid "%sPath not found.Please verify the correct path was given."
+msgstr ""
+"\"%s\"\n"
+"Directorio no encontrado.\n"
+"Por favor verifique el nombre del directorio."
+
+#. Programmer's name for it: SUnknownImageFormat\r
+#: Clx/QConsts.pas:299 \r
+msgid "Image format not recognized"
+msgstr "Formato de imagen no reconocido"
+
+#. Programmer's name for it: SInvalidHandle\r
+#: Clx/QConsts.pas:300 \r
+msgid "Invalid handle value for %s"
+msgstr "Valor para el manejador (handle) no válido %s"
+
+#. Programmer's name for it: SUnableToWrite\r
+#: Clx/QConsts.pas:301 \r
+msgid "Unable to write bitmap"
+msgstr "No se puede escribir el bitmap"
+
+#. Programmer's name for it: sAllFilter\r
+#: Clx/QConsts.pas:302 \r Vcl/Consts.pas:161
+msgid "All"
+msgstr "Todos"
+
+#. Programmer's name for it: sInvalidSetClipped\r
+#: Clx/QConsts.pas:304 \r
+msgid "Cannot set Clipped property while painting"
+msgstr "No se puede asignar la propiedad Clipped mientras se pinta"
+
+#. Programmer's name for it: sInvalidLCDValue\r
+#: Clx/QConsts.pas:306 \r
+msgid "Invalid LCDNumber value"
+msgstr "Valor del LCDNumber no válido"
+
+#. Programmer's name for it: sTabFailDelete\r
+#: Clx/QConsts.pas:308 \r Vcl/ComStrs.pas:16
+msgid "Failed to delete tab at index %d"
+msgstr "Se ha producido un error al eliminar la página en índice %d"
+
+#. Programmer's name for it: sPageIndexError\r
+#: Clx/QConsts.pas:310 \r Vcl/ComStrs.pas:46
+msgid "%d is an invalid PageIndex value.  PageIndex must be between 0 and %d"
+msgstr ""
+"%d es un valor de índice de página (PageIndex) no válido. El índice de "
+"página debe estar entre 0 y %d"
+
+#. Programmer's name for it: sInvalidLevel\r
+#: Clx/QConsts.pas:311 \r Vcl/ComStrs.pas:23
+msgid "Invalid item level assignment"
+msgstr "Asignación de nivel de elemento no válida"
+
+#. Programmer's name for it: sInvalidLevelEx\r
+#: Clx/QConsts.pas:312 \r Vcl/ComStrs.pas:24
+msgid "Invalid level (%d) for item \"%s\""
+msgstr "Nivel (%d) no válido para el elemento \"%s\""
+
+#. Programmer's name for it: sTabMustBeMultiLine\r
+#: Clx/QConsts.pas:313 \r Vcl/ComStrs.pas:21
+msgid "MultiLine must be True when TabPosition is tpLeft or tpRight"
+msgstr ""
+"MultiLine debe ser \"True\" cuando TabPosition es \"tpLeft\" o \"tpRight\""
+
+#. Programmer's name for it: sStatusBarContainsControl\r
+#: Clx/QConsts.pas:314 \r
+msgid "%s is already in the StatusBar"
+msgstr "%s ya està en la StatusBar"
+
+#. Programmer's name for it: sListRadioItemBadParent\r
+#: Clx/QConsts.pas:315 \r
+msgid "Radio items must have a Controller as a parent"
+msgstr ""
+"Los elementos de múltiple selección deben tener un Controlador como padre"
+
+#. Programmer's name for it: sOwnerNotCustomHeaderSections\r
+#: Clx/QConsts.pas:316 \r
+msgid "Owner is not a TCustomHeaderSection"
+msgstr "El dueño no es un TCustomHeaderSection"
+
+#. Programmer's name for it: sHeaderSectionOwnerNotHeaderControl\r
+#: Clx/QConsts.pas:317 \r
+msgid "Header Section owner must be a TCustomHeaderControl"
+msgstr "El dueño de la Banda de Encabezado debe tener un TCustomHeaderControl"
+
+#. Programmer's name for it: SFirstRecord\r
+#: Clx/QDBConsts.pas:20 \r Vcl/VDBConsts.pas:19
+msgid "First record"
+msgstr "Primer registro"
+
+#. Programmer's name for it: SPriorRecord\r
+#: Clx/QDBConsts.pas:21 \r Vcl/VDBConsts.pas:20
+msgid "Prior record"
+msgstr "Anterior registro"
+
+#. Programmer's name for it: SNextRecord\r
+#: Clx/QDBConsts.pas:22 \r Vcl/VDBConsts.pas:21
+msgid "Next record"
+msgstr "Siguiente registro"
+
+#. Programmer's name for it: SLastRecord\r
+#: Clx/QDBConsts.pas:23 \r Vcl/VDBConsts.pas:22
+msgid "Last record"
+msgstr "Último registro"
+
+#. Programmer's name for it: SInsertRecord\r
+#: Clx/QDBConsts.pas:24 \r Vcl/VDBConsts.pas:23
+msgid "Insert record"
+msgstr "Insertar registro"
+
+#. Programmer's name for it: SDeleteRecord\r
+#: Clx/QDBConsts.pas:25 \r Vcl/VDBConsts.pas:24
+msgid "Delete record"
+msgstr "Eliminar registro"
+
+#. Programmer's name for it: SEditRecord\r
+#: Clx/QDBConsts.pas:26 \r Vcl/VDBConsts.pas:25
+msgid "Edit record"
+msgstr "Editar registro"
+
+#. Programmer's name for it: SPostEdit\r
+#: Clx/QDBConsts.pas:27 \r Vcl/VDBConsts.pas:26
+msgid "Post edit"
+msgstr "Grabar edición"
+
+#. Programmer's name for it: SCancelEdit\r
+#: Clx/QDBConsts.pas:28 \r Vcl/VDBConsts.pas:27
+msgid "Cancel edit"
+msgstr "Cancelar edición"
+
+#. Programmer's name for it: SRefreshRecord\r
+#: Clx/QDBConsts.pas:30 \r Vcl/VDBConsts.pas:29
+msgid "Refresh data"
+msgstr "Refrescar datos"
+
+#. Programmer's name for it: SDeleteRecordQuestion\r
+#: Clx/QDBConsts.pas:31 \r Vcl/DBConsts.pas:106 Vcl/VDBConsts.pas:30
+msgid "Delete record?"
+msgstr "¿Desea eliminar el registro?"
+
+#. Programmer's name for it: SDeleteMultipleRecordsQuestion\r
+#: Clx/QDBConsts.pas:32 \r Vcl/DBConsts.pas:107 Vcl/VDBConsts.pas:31
+msgid "Delete all selected records?"
+msgstr "¿Desea eliminar todos los registros seleccionados?"
+
+#. Programmer's name for it: SDataSourceFixed\r
+#: Clx/QDBConsts.pas:33 \r Vcl/VDBConsts.pas:32
+msgid "Operation not allowed in a DBCtrlGrid"
+msgstr "Operación no permitida en un DBCtrlGrid"
+
+#. Programmer's name for it: SNotReplicatable\r
+#: Clx/QDBConsts.pas:34 \r Vcl/VDBConsts.pas:33
+msgid "Control cannot be used in a DBCtrlGrid"
+msgstr "El control no puede ser utilizado en un DBCtrlGrid"
+
+#. Programmer's name for it: SPropDefByLookup\r
+#: Clx/QDBConsts.pas:35 \r Vcl/VDBConsts.pas:34
+msgid "Property already defined by lookup field"
+msgstr "Propiedad ya definida anteriormente por el campo de búsqueda"
+
+#. Programmer's name for it: STooManyColumns\r
+#: Clx/QDBConsts.pas:36 \r Vcl/DBConsts.pas:108 Vcl/VDBConsts.pas:35
+msgid "Grid requested to display more than 256 columns"
+msgstr "La rejilla pidió desplegar más de 256 columnas"
+
+#. Programmer's name for it: SRemoteLogin\r
+#: Clx/QDBConsts.pas:39 \r Vcl/VDBConsts.pas:38
+msgid "Remote Login"
+msgstr "Login Remoto"
+
+#. Programmer's name for it: sRowError\r
+#: Decision\r Cube/Mxconsts.pas:27 \r Vcl/Mxconsts.pas:27
+msgid "row error"
+msgstr "error de fila"
+
+#. Programmer's name for it: sAllValues\r
+#: Decision\r Cube/Mxconsts.pas:29 \r Vcl/Mxconsts.pas:29
+msgid "All Values"
+msgstr "Todos los valores"
+
+#. Programmer's name for it: sMovetoRow\r
+#: Decision\r Cube/Mxconsts.pas:30 \r Vcl/Mxconsts.pas:30
+msgid "Move to Row Area"
+msgstr "Mover al Área de Filas"
+
+#. Programmer's name for it: sMovetoCol\r
+#: Decision\r Cube/Mxconsts.pas:31 \r Vcl/Mxconsts.pas:31
+msgid "Move to Column Area"
+msgstr "Mover al Área de Columnas"
+
+#. Programmer's name for it: sMakeDimOpen\r
+#: Decision\r Cube/Mxconsts.pas:32 \r Vcl/Mxconsts.pas:32
+msgid "Open Dimension"
+msgstr "Abrir Dimensión"
+
+#. Programmer's name for it: sDrilled\r
+#: Decision\r Cube/Mxconsts.pas:33 \r Vcl/Mxconsts.pas:33
+msgid "Drilled In"
+msgstr "Profundizado"
+
+#. Programmer's name for it: sCouldNotOpen\r
+#: Decision\r Cube/Mxconsts.pas:34 \r Vcl/Mxconsts.pas:34
+msgid "The information requested could not be loaded. "
+msgstr "La información requerida no pudo ser cargada."
+
+#. Programmer's name for it: sNoSumsAvailable\r
+#: Decision\r Cube/Mxconsts.pas:35 \r Vcl/Mxconsts.pas:35
+msgid "No active summaries have been defined. "
+msgstr "No ha sidos definidos los sumarios activos."
+
+#. Programmer's name for it: sNoSumsCouldBeLoaded\r
+#: Decision\r Cube/Mxconsts.pas:36 \r Vcl/Mxconsts.pas:36
+msgid "Not enough room available to load a summary. "
+msgstr "No hay espacio suficiente para cargar un sumario."
+
+#. Programmer's name for it: sNoDimsAvailable\r
+#: Decision\r Cube/Mxconsts.pas:37 \r Vcl/Mxconsts.pas:37
+msgid "No available dimensions have been defined. "
+msgstr "No ha sido definidas las dimensiones disponibles"
+
+#. Programmer's name for it: sNoDimsCouldBeLoaded\r
+#: Decision\r Cube/Mxconsts.pas:38 \r Vcl/Mxconsts.pas:38
+msgid "Not enough space available to load a dimension. "
+msgstr "No hay espacio suficiente para cargar una dimensión."
+
+#. Programmer's name for it: sTemplatePrefix\r
+#: Decision\r Cube/Mxconsts.pas:40 \r Vcl/Mxconsts.pas:40
+msgid "Template: "
+msgstr "Patrón: "
+
+#. Programmer's name for it: sGridCellError\r
+#: Decision\r Cube/Mxconsts.pas:42 \r Vcl/Mxconsts.pas:42
+msgid "[Error]"
+msgstr "[Error]"
+
+#. Programmer's name for it: sTotalCaption\r
+#: Decision\r Cube/Mxconsts.pas:43 \r Vcl/Mxconsts.pas:43
+msgid "Sum"
+msgstr "Suma"
+
+#. Programmer's name for it: sActivateLabel\r
+#: Decision\r Cube/Mxconsts.pas:44 \r Vcl/Mxconsts.pas:44
+msgid "Inactive Dimensions"
+msgstr "Dimensiones inactivas"
+
+#. Programmer's name for it: sRowCaption\r
+#: Decision\r Cube/Mxconsts.pas:45 \r Vcl/Mxconsts.pas:45
+msgid "R"
+msgstr ""
+
+#. Programmer's name for it: sColCaption\r
+#: Decision\r Cube/Mxconsts.pas:46 \r Vcl/Mxconsts.pas:46
+msgid "C"
+msgstr ""
+
+#. Programmer's name for it: sCaptionMenu1\r
+#: Decision\r Cube/Mxconsts.pas:47 \r Vcl/Mxconsts.pas:47
+msgid "Display Data and Subtotals"
+msgstr "Mostrar datos y subtotales"
+
+#. Programmer's name for it: sCaptionMenu2\r
+#: Decision\r Cube/Mxconsts.pas:48 \r Vcl/Mxconsts.pas:48
+msgid "Display Data Only"
+msgstr "Mostrar solo datos"
+
+#. Programmer's name for it: sCaptionMenu3\r
+#: Decision\r Cube/Mxconsts.pas:49 \r Vcl/Mxconsts.pas:49
+msgid "Display Subtotals Only"
+msgstr "Mostrar solo subtotales"
+
+#. Programmer's name for it: sDrillIn\r
+#: Decision\r Cube/Mxconsts.pas:50 \r Vcl/Mxconsts.pas:50
+msgid "Drill in to this value"
+msgstr "Profundizar en éste valor"
+
+#. Programmer's name for it: sGridMenu1\r
+#: Decision\r Cube/Mxconsts.pas:51 \r Vcl/Mxconsts.pas:51
+msgid "Subtotals on/off"
+msgstr "Subtotales activados/desactivados"
+
+#. Programmer's name for it: sGridMenu2\r
+#: Decision\r Cube/Mxconsts.pas:52 \r Vcl/Mxconsts.pas:52
+msgid "Decision Cube Editor.."
+msgstr "Editor de Cubo de Decisiones.."
+
+#. Programmer's name for it: sGridMenu3\r
+#: Decision\r Cube/Mxconsts.pas:53 \r Vcl/Mxconsts.pas:53
+msgid "Decision Query Editor.."
+msgstr "Editor de Query de Decisiones.."
+
+#. Programmer's name for it: sGridMenu4\r
+#: Decision\r Cube/Mxconsts.pas:54 \r Vcl/Mxconsts.pas:54
+msgid "Show Detail Records.."
+msgstr "Mostrar Registros Detallados.."
+
+#. Programmer's name for it: sUnsupportedDataType\r
+#: Decision\r Cube/Mxconsts.pas:57 \r Vcl/Mxconsts.pas:57
+msgid "Unsupported data type : %s"
+msgstr "Tipo de dato no soportado : %s"
+
+#. Programmer's name for it: sRowOutOfRange\r
+#: Decision\r Cube/Mxconsts.pas:58 \r Vcl/Mxconsts.pas:58
+msgid "Row index out of range : %d"
+msgstr "Indice de fila fuera de rango : %d"
+
+#. Programmer's name for it: sColOutOfRange\r
+#: Decision\r Cube/Mxconsts.pas:59 \r Vcl/Mxconsts.pas:59
+msgid "Column index out of range : %d"
+msgstr "Indice de columna fuera de rango : %d"
+
+#. Programmer's name for it: sDupeItem\r
+#: Decision\r Cube/Mxconsts.pas:60 \r Vcl/Mxconsts.pas:60
+msgid "Duplicate item in array"
+msgstr "Dato duplicado en la matriz"
+
+#. Programmer's name for it: sArrayIndexOutOfRange\r
+#: Decision\r Cube/Mxconsts.pas:61 \r Vcl/Mxconsts.pas:61
+msgid "Array index out of range : %d"
+msgstr "Indice de matriz fuera de rango : %d"
+
+#. Programmer's name for it: sLowCapacityError\r
+#: Decision\r Cube/Mxconsts.pas:62 \r Vcl/Mxconsts.pas:62
+msgid ""
+"The DecisionCube Capacity is low. Please deactivate dimensions or change the "
+"data set."
+msgstr ""
+"La capacidad (Capacity) del Cubo de Decisiónes es baja. Por favor, desactive "
+"las dimensiones o cambie el DataSet."
+
+#. Programmer's name for it: sQryNotInitialized\r
+#: Decision\r Cube/Mxconsts.pas:63 \r Vcl/Mxconsts.pas:63
+msgid ""
+"Query could not be run. Check that the query, SQL text, and Database are "
+"correct."
+msgstr ""
+"La consulta no puede ser ejecutada. Verifique que la consulta, el texto SQL, "
+"y el DataBase son correctos."
+
+#. Programmer's name for it: sSortedListError\r
+#: Decision\r Cube/Mxconsts.pas:64 \r Vcl/Mxconsts.pas:64
+msgid "Operation not allowed on sorted string list."
+msgstr "Operación no soportada en una lista de cadenes ordenada."
+
+#. Programmer's name for it: sDuplicateString\r
+#: Decision\r Cube/Mxconsts.pas:65 \r Vcl/Mxconsts.pas:65
+msgid "String list does not allow duplicates."
+msgstr "Las listas de cadenas no permiten duplicados."
+
+#. Programmer's name for it: sMaxAllowedSums\r
+#: Decision\r Cube/Mxconsts.pas:66 \r Vcl/Mxconsts.pas:66
+msgid "The maximum allowed summaries of %d has been exceeded."
+msgstr "El número máximo de sumarios permitidos de %d ha sido excedido."
+
+#. Programmer's name for it: sGeneralArrayError\r
+#: Decision\r Cube/Mxconsts.pas:67 \r Vcl/Mxconsts.pas:67
+msgid "General array error."
+msgstr "Hay un error en la matriz general."
+
+#. Programmer's name for it: sDimIndexError\r
+#: Decision\r Cube/Mxconsts.pas:70 \r Vcl/Mxconsts.pas:70
+msgid "Illegal Dimension Index"
+msgstr "Índice de Dimensiones ilegal"
+
+#. Programmer's name for it: sIllegalValueForBin\r
+#: Decision\r Cube/Mxconsts.pas:73 \r Vcl/Mxconsts.pas:73
+msgid "Initial Value is not legal for this type of Grouping"
+msgstr "El valor inicial no es legal para éste tipo de agrupamiento"
+
+#. Programmer's name for it: sIllegalDimMap\r
+#: Decision\r Cube/Mxconsts.pas:74 \r Vcl/Mxconsts.pas:74
+msgid "Dimension Map is not the correct size"
+msgstr "El Mapa de Dimensiones no tiene el tamaño correcto"
+
+#. Programmer's name for it: sDimMapActiveError\r
+#: Decision\r Cube/Mxconsts.pas:75 \r Vcl/Mxconsts.pas:75
+msgid "Cannot perform this action on an active Dimension Map"
+msgstr "No se puede ejecutar esta operación sobre una Dimension Map activa"
+
+#. Programmer's name for it: sNotAvailable\r
+#: Decision\r Cube/Mxconsts.pas:76 \r Vcl/Mxconsts.pas:76
+msgid "Not Available"
+msgstr "No disponible"
+
+#. Programmer's name for it: sGetValueCounts\r
+#: Decision\r Cube/Mxconsts.pas:77 \r Vcl/Mxconsts.pas:77
+msgid ""
+"Information required to do Maximum Cell limit is not current.  Do you want "
+"to fetch it now?"
+msgstr ""
+"La información requerida para el límite Máximo de Celda no está presente. "
+"¿Desea adquirirla ahora?"
+
+#. Programmer's name for it: sDateBinningNotAllowed\r
+#: Decision\r Cube/Mxconsts.pas:78 \r Vcl/Mxconsts.pas:78
+msgid "Date grouping is not allowed for fields of this type"
+msgstr "El Agrupamiento por Fecha no está permitido para campos de éste tipo"
+
+#. Programmer's name for it: sEmptyDataSet\r
+#: Decision\r Cube/Mxconsts.pas:79 \r Vcl/Mxconsts.pas:79
+msgid "Cannot build the Decision Cube with an empty data set"
+msgstr ""
+"No se puede construir el Cubo de Decisiones con un conjunto de datos vacío"
+
+#. Programmer's name for it: sNoDataSet\r
+#: Decision\r Cube/Mxconsts.pas:82 \r Vcl/Mxconsts.pas:82
+msgid "Data set property is not assigned"
+msgstr "El dataset no está asignado"
+
+#. Programmer's name for it: sNoAggs\r
+#: Decision\r Cube/Mxconsts.pas:83 \r Vcl/Mxconsts.pas:83
+msgid "No summaries are defined. "
+msgstr "No se han definido sumarios. "
+
+#. Programmer's name for it: sNoDims\r
+#: Decision\r Cube/Mxconsts.pas:84 \r Vcl/Mxconsts.pas:84
+msgid "No dimension fields are defined. "
+msgstr "No se han definido campos de dimensión. "
+
+#. Programmer's name for it: sUnknownDims\r
+#: Decision\r Cube/Mxconsts.pas:85 \r Vcl/Mxconsts.pas:85
+msgid ""
+"The dimension types for this dataset cannot be determined automatically.  "
+"You must map the fields to dimensions or summaries with the Decision Cube "
+"Editor"
+msgstr ""
+"Los tipos de dimensión para este dataset no pueden ser determinados "
+"automáticamente.  Debe definir las dimensiones de los campos o los resúmenes "
+"con el Editor del Cubo de Desición"
+
+#. Programmer's name for it: sGroupsMissing\r
+#: Decision\r Cube/Mxconsts.pas:86 \r Vcl/Mxconsts.pas:86
+msgid "All dimension fields must be grouped. "
+msgstr "Todos los campos de dimensión deben estar agrupados. "
+
+#. Programmer's name for it: sDecisionQueryError\r
+#. Programmer's name for it: sQueryError\r
+#. Programmer's name for it: sDecisionQueryError\r
+#. Programmer's name for it: sQueryError\r
+#: Decision\r Cube/Mxconsts.pas:87 \r Cube/Mxconsts.pas:89 Vcl/Mxconsts.pas:87
+#: Vcl/Mxconsts.pas:89
+msgid ""
+"The query may be incorrectly defined, or you may need to map its fields to "
+"active dimensions or summaries with the Decision Cube Editor"
+msgstr ""
+"La consulta puede estar definida incorrectamente, o tal vez necesite indicar "
+"en el mapa los campos para activar las dimensiones o sumarios con el Editor "
+"de Cubo de Decisión"
+
+#. Programmer's name for it: sDataSetError\r
+#: Decision\r Cube/Mxconsts.pas:88 \r Vcl/Mxconsts.pas:88
+msgid ""
+"The dataset may be incorrectly defined, or you may need to map its fields to "
+"active dimensions or summaries with the Decision Cube Editor"
+msgstr ""
+"El dataSet puede estar definido incorrectamente, o tal vez necesite indicar "
+"en el mapa los campos para activar las dimensiones o sumarios con el Editor "
+"de Cubo de Decisión"
+
+#. Programmer's name for it: sCountStar\r
+#: Decision\r Cube/Mxconsts.pas:90 \r Vcl/Mxconsts.pas:90
+msgid "COUNTALL"
+msgstr ""
+
+#. Programmer's name for it: sAddAvgWarning\r
+#: Decision\r Cube/Mxconsts.pas:91 \r Vcl/Mxconsts.pas:91
+msgid ""
+"Average is calculated using sum and count summaries for each field. The "
+"necessary summaries have been added."
+msgstr ""
+
+#. Programmer's name for it: sAddAvgStarWarning\r
+#: Decision\r Cube/Mxconsts.pas:92 \r Vcl/Mxconsts.pas:92
+msgid ""
+"Average is calculated using a field sum and count(*).  The necessary "
+"summaries have been added."
+msgstr ""
+"El promedio está calculado utilizando SUM y COUNT para cada campo. Los "
+"sumarios necesarios han sido añadidos."
+
+#. Programmer's name for it: sQueryLegal\r
+#: Decision\r Cube/Mxconsts.pas:95 \r Vcl/Mxconsts.pas:95
+msgid "Query is legal."
+msgstr "La consulta es legal."
+
+#. Programmer's name for it: sAddFieldExists\r
+#: Decision\r Cube/Mxconsts.pas:96 \r Vcl/Mxconsts.pas:96
+msgid " is already in the query"
+msgstr " ya estaba en la consulta"
+
+#. Programmer's name for it: sAggTypeNotAllowed\r
+#: Decision\r Cube/Mxconsts.pas:97 \r Vcl/Mxconsts.pas:97
+msgid " is not an allowed summary type"
+msgstr " no es un tipo de sumario permitido"
+
+#. Programmer's name for it: sDimTypeNotAllowed\r
+#: Decision\r Cube/Mxconsts.pas:98 \r Vcl/Mxconsts.pas:98
+msgid " is not an allowed dimension type"
+msgstr " no es un tipo de dimensión permitida"
+
+#. Programmer's name for it: sAverageRequires\r
+#: Decision\r Cube/Mxconsts.pas:99 \r Vcl/Mxconsts.pas:99
+msgid "Average summaries use Sum and Count"
+msgstr "El promedio de sumarios utiliza SUM Y COUNT"
+
+#. Programmer's name for it: sWantToExit\r
+#: Decision\r Cube/Mxconsts.pas:100 \r Vcl/Mxconsts.pas:100
+msgid "Do you still want to Exit?"
+msgstr "¿Aún desea salir?"
+
+#. Programmer's name for it: sQueryIllegal\r
+#: Decision\r Cube/Mxconsts.pas:101 \r Vcl/Mxconsts.pas:101
+msgid "The query you have created is not legal."
+msgstr "La consulta que ha creado no es legal."
+
+#. Programmer's name for it: sQueryEditIllegal\r
+#: Decision\r Cube/Mxconsts.pas:102 \r Vcl/Mxconsts.pas:102
+msgid ""
+"The query you have entered is not legal.  Please correct it before "
+"continuing."
+msgstr ""
+"La consulta que ha ingresadono es legal. Por favor corríjala anes de "
+"continuar"
+
+#. Programmer's name for it: sRemoveFieldError\r
+#: Decision\r Cube/Mxconsts.pas:103 \r Vcl/Mxconsts.pas:103
+msgid "Could not remove the field"
+msgstr "No se pudo eliminar el campo"
+
+#. Programmer's name for it: sAllFields\r
+#: Decision\r Cube/Mxconsts.pas:104 \r Vcl/Mxconsts.pas:104
+msgid "All Fields"
+msgstr "Todos los Campos"
+
+#. Programmer's name for it: sQueryFields\r
+#: Decision\r Cube/Mxconsts.pas:105 \r Vcl/Mxconsts.pas:105
+msgid "Query Fields"
+msgstr "Campos de Consulta"
+
+#. Programmer's name for it: sEditDone\r
+#: Decision\r Cube/Mxconsts.pas:106 \r Vcl/Mxconsts.pas:106
+msgid "&Edit Done"
+msgstr "&Edición Finalizada"
+
+#. Programmer's name for it: sEditQuery\r
+#. DSSQueryEditor..Pager..Query..EditQry..Caption\r
+#: Decision\r Cube/Mxconsts.pas:107 \r Vcl/Mxconsts.pas:107
+#: Cube/MXDSSQRY.DFM:299
+msgid "&Edit Query"
+msgstr "&Editar Consulta"
+
+#. Programmer's name for it: sQParseRemovedField\r
+#: Decision\r Cube/Mxconsts.pas:110 \r Vcl/Mxconsts.pas:110
+msgid ""
+"One or more fields of a type which cannot be tabulated were removed from the "
+"query."
+msgstr ""
+"Uno o más campos por cuyo tipo no pueden ser tabulados fueron eliminados de "
+"la consulta."
+
+#. Programmer's name for it: sCubeLimitsExceeded\r
+#: Decision\r Cube/Mxconsts.pas:113 \r Vcl/Mxconsts.pas:113
+msgid "Decision Cube size excedes limits"
+msgstr "El tamaño del Cubo de Decisión excede los límites"
+
+#. Programmer's name for it: sMaxAllowedDims\r
+#: Decision\r Cube/Mxconsts.pas:114 \r Vcl/Mxconsts.pas:114
+msgid "The maximum allowed dimensions of %d has been exceeded."
+msgstr "El número máximo de dimensiones permitidas de %d ha sido excedido."
+
+#. Programmer's name for it: sMaxAllowedCells\r
+#: Decision\r Cube/Mxconsts.pas:115 \r Vcl/Mxconsts.pas:115
+msgid "Total cell count of %d exceeds the maximum of %d."
+msgstr "El número total de celdas de %d excede el máximo de %d."
+
+#. Programmer's name for it: sUnsupportedFieldType\r
+#: Decision\r Cube/Mxconsts.pas:116 \r Vcl/Mxconsts.pas:116
+msgid "Field %s has an unsupported data type: %s"
+msgstr "El campo %s es de un tipo no soportado: %s"
+
+#. Programmer's name for it: sFetchValues\r
+#: Decision\r Cube/Mxconsts.pas:117 \r Vcl/Mxconsts.pas:117
+msgid "Scanning data set values..."
+msgstr "Explorando los valores del DataSet..."
+
+#. Programmer's name for it: sUserCanceled\r
+#: Decision\r Cube/Mxconsts.pas:118 \r Vcl/Mxconsts.pas:118
+msgid "User canceled DecisionCube population."
+msgstr "El usuario canceló el procesamiento del DecisionCube."
+
+#. Programmer's name for it: sBinningValues\r
+#: Decision\r Cube/Mxconsts.pas:119 \r Vcl/Mxconsts.pas:119
+msgid "Grouping values ..."
+msgstr "Agrupando valores..."
+
+#. Programmer's name for it: sCreatingIndexes\r
+#: Decision\r Cube/Mxconsts.pas:120 \r Vcl/Mxconsts.pas:120
+msgid "Creating Cube index for %s ..."
+msgstr "Creando el índice del Cubo para %s ..."
+
+#. Programmer's name for it: sCreateDerivedSummaryError\r
+#: Decision\r Cube/Mxconsts.pas:121 \r Vcl/Mxconsts.pas:121
+msgid "Unable to create derived summary."
+msgstr "No es posible crear un sumario derivado."
+
+#. Programmer's name for it: sTrue\r
+#. Programmer's name for it: STextTrue\r
+#. Programmer's name for it: sTrue\r
+#: Decision\r Cube/Mxconsts.pas:122 \r Vcl/DBConsts.pas:80 Vcl/Mxconsts.pas:122
+msgid "True"
+msgstr "Verdadero"
+
+#. Programmer's name for it: sFalse\r
+#. Programmer's name for it: STextFalse\r
+#. Programmer's name for it: sFalse\r
+#: Decision\r Cube/Mxconsts.pas:123 \r Vcl/DBConsts.pas:79 Vcl/Mxconsts.pas:123
+msgid "False"
+msgstr "Falso"
+
+#. Programmer's name for it: sBinTypeMismatch\r
+#: Decision\r Cube/Mxconsts.pas:124 \r Vcl/Mxconsts.pas:124
+msgid "The bin type does not match the fieldtype."
+msgstr "El tipo de contenedor no concuerda con el tipo de campo."
+
+#. Programmer's name for it: sFatalCacheError\r
+#: Decision\r Cube/Mxconsts.pas:125 \r Vcl/Mxconsts.pas:125
+msgid "Fatal error in cache: code: %d"
+msgstr "Error fatal en cache: código: %d"
+
+#. Programmer's name for it: sStringTypeNoSupported\r
+#: Decision\r Cube/Mxconsts.pas:126 \r Vcl/Mxconsts.pas:126
+msgid "String Data type not supported for summaries"
+msgstr "Tipo de Dato de Cadena no soportado por sumarios"
+
+#. Programmer's name for it: sDataSetTooLarge\r
+#: Decision\r Cube/Mxconsts.pas:127 \r Vcl/Mxconsts.pas:127
+msgid "Dataset is too large"
+msgstr "El dataset es demasiado grande"
+
+#. Programmer's name for it: sBuildingDataStore\r
+#: Decision\r Cube/Mxconsts.pas:128 \r Vcl/Mxconsts.pas:128
+msgid "Building data store..."
+msgstr "Construyendo almacén de datos..."
+
+#. Programmer's name for it: sSumLabel\r
+#: Decision\r Cube/Mxconsts.pas:131 \r Vcl/Mxconsts.pas:131
+msgid "Sum of %s"
+msgstr "Suma de %s"
+
+#. Programmer's name for it: sCountLabel\r
+#: Decision\r Cube/Mxconsts.pas:132 \r Vcl/Mxconsts.pas:132
+msgid "Count of %s"
+msgstr "Recuento de %s"
+
+#. Programmer's name for it: sMaxLabel\r
+#: Decision\r Cube/Mxconsts.pas:133 \r Vcl/Mxconsts.pas:133
+msgid "Maximum of %s"
+msgstr "Máximo de %s"
+
+#. Programmer's name for it: sMinLabel\r
+#: Decision\r Cube/Mxconsts.pas:134 \r Vcl/Mxconsts.pas:134
+msgid "Minimum of %s"
+msgstr "Mínimo de %s"
+
+#. Programmer's name for it: sAverageLabel\r
+#: Decision\r Cube/Mxconsts.pas:135 \r Vcl/Mxconsts.pas:135
+msgid "Average of %s"
+msgstr "Promedio de %s"
+
+#. Programmer's name for it: sVarLabel\r
+#: Decision\r Cube/Mxconsts.pas:136 \r Vcl/Mxconsts.pas:136
+msgid "Variance of %s"
+msgstr "Varianza de %s"
+
+#. Programmer's name for it: sSDLabel\r
+#: Decision\r Cube/Mxconsts.pas:137 \r Vcl/Mxconsts.pas:137
+msgid "Standard Deviation of %s"
+msgstr "Desviación estándar de %s"
+
+#. Programmer's name for it: sAggLabel\r
+#: Decision\r Cube/Mxconsts.pas:138 \r Vcl/Mxconsts.pas:138
+msgid "Summary of %s"
+msgstr "Sumario de %s"
+
+#. Programmer's name for it: sUnsupportedVarType\r
+#: Decision\r Cube/Mxconsts.pas:139 \r Vcl/Mxconsts.pas:139
+msgid "Unsupported Data Type %d"
+msgstr "Tipo de dato no soportado"
+
+#. Programmer's name for it: sOtherValues\r
+#: Decision\r Cube/Mxconsts.pas:140 \r Vcl/Mxconsts.pas:140
+msgid "Other Values"
+msgstr "Otros valores"
+
+#. Programmer's name for it: sSelectFromError\r
+#: Decision\r Cube/Mxconsts.pas:142 \r Vcl/Mxconsts.pas:142
+msgid "Query lacks a Select/From clause."
+msgstr "La consulta carece de una cláusula Select/From."
+
+#. Programmer's name for it: sArgumentExpected\r
+#: Decision\r Cube/Mxconsts.pas:143 \r Vcl/Mxconsts.pas:143
+msgid "No argument provided for an operator or summary"
+msgstr "No se proveyó ningún argumento para un operador o sumario"
+
+#. Programmer's name for it: sGroupOnExpressionError\r
+#: Decision\r Cube/Mxconsts.pas:144 \r Vcl/Mxconsts.pas:144
+msgid "An expression cannot be used for a grouping field"
+msgstr "No es posible utilizar una expresión para un campo de agrupamiento"
+
+#. Programmer's name for it: SOutofBounds\r
+#: Decision\r Cube/Mxconsts.pas:146 \r Vcl/Mxconsts.pas:146
+msgid "Out of Bounds"
+msgstr "Fuera de Límites"
+
+#. Programmer's name for it: sIDAPILangID\r
+#. Programmer's name for it: SIDAPILangID\r
+#. Programmer's name for it: sIDAPILangID\r
+#: Decision\r Cube/Mxconsts.pas:147 \r Vcl/bdeconst.pas:47 Vcl/Mxconsts.pas:147
+msgid "0009"
+msgstr ""
+
+#. Programmer's name for it: sComponentTabName\r
+#: Decision\r Cube/MXDCONST.PAS:14 \r
+msgid "Decision Cube"
+msgstr "Cubo de Decisión"
+
+#. Programmer's name for it: sQueryVerb0\r
+#: Decision\r Cube/MXDCONST.PAS:15 \r
+msgid "&Graphical Query Builder..."
+msgstr ""
+
+#. Programmer's name for it: sQueryVerb1\r
+#: Decision\r Cube/MXDCONST.PAS:16 \r
+msgid "&Decision Query Editor..."
+msgstr ""
+
+#. Programmer's name for it: sCubeVerb0\r
+#: Decision\r Cube/MXDCONST.PAS:17 \r
+msgid "&Decision Cube Editor..."
+msgstr "&Editor de Cubo de Decisión..."
+
+#. Programmer's name for it: sCubeVerb1\r
+#: Decision\r Cube/MXDCONST.PAS:18 \r
+msgid "&Query Editor..."
+msgstr ""
+
+#. Programmer's name for it: sGridVerb0\r
+#: Decision\r Cube/MXDCONST.PAS:19 \r
+msgid "Sub&totals on/off"
+msgstr "Sub&totales si/no"
+
+#. Programmer's name for it: sSourceVerb0\r
+#: Decision\r Cube/MXDCONST.PAS:20 \r
+msgid "&Do not display Sparse Rows/Columns"
+msgstr ""
+
+#. Programmer's name for it: sSourceVerb1\r
+#: Decision\r Cube/MXDCONST.PAS:21 \r
+msgid "&Display Sparse Rows/Columns"
+msgstr ""
+
+#. Programmer's name for it: sGridDimOptions\r
+#: Decision\r Cube/MXDCONST.PAS:22 \r
+msgid "Grid Dimension Options"
+msgstr "Opciones de la Dimensión de la Rejilla"
+
+#. Programmer's name for it: sGridDimSettings\r
+#: Decision\r Cube/MXDCONST.PAS:23 \r
+msgid "Grid Dimension Settings"
+msgstr "Configuración de la Dimensión de la Rejilla"
+
+#. Programmer's name for it: sCubeProperties\r
+#: Decision\r Cube/MXDCONST.PAS:24 \r
+msgid "Cube Properties"
+msgstr "Propiedades del Cubo"
+
+#. Programmer's name for it: RSAlreadyConnected\r
+#: Indy/IdResourceStrings.pas:7 \r
+msgid "Already connected."
+msgstr "Ya está conectado."
+
+#. Programmer's name for it: RSByteIndexOutOfBounds\r
+#: Indy/IdResourceStrings.pas:8 \r
+msgid "Byte index out of range."
+msgstr "Indice de Byte fuera de rango."
+
+#. Programmer's name for it: RSCannotAllocateSocket\r
+#: Indy/IdResourceStrings.pas:9 \r
+msgid "Cannot allocate socket."
+msgstr "No se encuentra el socket."
+
+#. Programmer's name for it: RSConnectionClosedGracefully\r
+#: Indy/IdResourceStrings.pas:10 \r
+msgid "Connection Closed Gracefully."
+msgstr "Conexión cerrada."
+
+#. Programmer's name for it: RSConnectionClosedGracefully\r
+#: Indy/IdResourceStrings.pas:12 \r
+msgid "Could not bind socket. Address and port are already in use."
+msgstr "Could not bind socket. Address and port are already in use."
+
+#. Programmer's name for it: RSFailedTimeZoneInfo\r
+#: Indy/IdResourceStrings.pas:13 \r
+msgid "Failed attempting to retrieve time zone information."
+msgstr "Fallo al intentar recuperar la información de hora de la zona."
+
+#. Programmer's name for it: RSNoBindingsSpecified\r
+#: Indy/IdResourceStrings.pas:14 \r
+msgid "No bindings specified."
+msgstr "Encuadernación no especificada."
+
+#. Programmer's name for it: RSOnExecuteNotAssigned\r
+#: Indy/IdResourceStrings.pas:15 \r
+msgid "OnExecute not assigned."
+msgstr "Evento OnExecute no asignado."
+
+#. Programmer's name for it: RSNotAllBytesSent\r
+#: Indy/IdResourceStrings.pas:16 \r
+msgid "Not all bytes sent."
+msgstr "No se han enviado todos los bytes."
+
+#. Programmer's name for it: RSNotEnoughDataInBuffer\r
+#: Indy/IdResourceStrings.pas:17 \r
+msgid "Not enough data in buffer."
+msgstr "No hay datos suficientes en el búfer."
+
+#. Programmer's name for it: RSPackageSizeTooBig\r
+#: Indy/IdResourceStrings.pas:18 \r
+msgid "Package Size Too Big."
+msgstr "El tamaño del paquete es demasiado grande."
+
+#. Programmer's name for it: RSUDPReceiveError0\r
+#: Indy/IdResourceStrings.pas:19 \r
+msgid "UDP Receive Error = 0."
+msgstr "Se ha producido un error al recibir UDP = 0."
+
+#. Programmer's name for it: RSRawReceiveError0\r
+#: Indy/IdResourceStrings.pas:20 \r
+msgid "Raw Receive Error = 0."
+msgstr "Se ha producido un error al recibir Raw = 0."
+
+#. Programmer's name for it: RSICMPReceiveError0\r
+#: Indy/IdResourceStrings.pas:21 \r
+msgid "ICMP Receive Error = 0."
+msgstr "Se ha producido un error al recibir ICMP = 0."
+
+#. Programmer's name for it: RSWinsockInitializationError\r
+#: Indy/IdResourceStrings.pas:22 \r
+msgid "Winsock Initialization Error."
+msgstr "Hay un error de inicialización de Winsock."
+
+#. Programmer's name for it: RSCouldNotLoad\r
+#: Indy/IdResourceStrings.pas:23 \r
+msgid "%s could not be loaded."
+msgstr "%s no puede ser cargado."
+
+#. Programmer's name for it: RSSetSizeExceeded\r
+#: Indy/IdResourceStrings.pas:24 \r
+msgid "Set Size Exceeded."
+msgstr "Asignación de tamaño excedida."
+
+#. Programmer's name for it: RSThreadClassNotSpecified\r
+#: Indy/IdResourceStrings.pas:25 \r
+msgid "Thread Class Not Specified."
+msgstr "Clase Thread no especificada."
+
+#. Programmer's name for it: RSCannotChangeDebugTargetAtWhileActive\r
+#: Indy/IdResourceStrings.pas:26 \r
+msgid "Cannot change target while active."
+msgstr "No se puede cambiar objetivo mientras esté activo."
+
+#. Programmer's name for it: RSOnlyOneAntiFreeze\r
+#: Indy/IdResourceStrings.pas:27 \r
+msgid "Only one TIdAntiFreeze can exist per application."
+msgstr "Sólo puede existir un TIdAntiFreeze por aplicación."
+
+#. Programmer's name for it: RSOnlyOneAntiFreeze\r
+#: Indy/IdResourceStrings.pas:29 \r
+msgid "InterceptEnabled cannot be set to true when Intercept is nil."
+msgstr "InterceptEnabled cannot be set to true when Intercept is nil."
+
+#. Programmer's name for it: RSInterceptPropInvalid\r
+#: Indy/IdResourceStrings.pas:30 \r
+msgid "Intercept value is not valid"
+msgstr "Valor de Intercept no válido"
+
+#. Programmer's name for it: RSObjectTypeNotSupported\r
+#: Indy/IdResourceStrings.pas:31 \r
+msgid "Object type not supported."
+msgstr "Tipo de objeto no soportado."
+
+#: Indy/IdResourceStrings.pas:33 \r
+msgid "AcceptWait property cannot be modified while server is active."
+msgstr ""
+
+#. Programmer's name for it: RSNoExecuteSpecified\r
+#: Indy/IdResourceStrings.pas:34 \r
+msgid "No execute handler found."
+msgstr "Ejecución guiada no especificada."
+
+#. Programmer's name for it: RSIdNoDataToRead\r
+#: Indy/IdResourceStrings.pas:35 \r
+msgid "No data to read."
+msgstr "No hay datos para leer."
+
+#. Status Strings\r
+#: Indy/IdResourceStrings.pas:37 \r
+msgid "Resolving hostname %s."
+msgstr ""
+
+#. Programmer's name for it: RSStatusConnecting\r
+#: Indy/IdResourceStrings.pas:38 \r
+msgid "Connecting to %s."
+msgstr "Conectando a %s."
+
+#. Programmer's name for it: RSStatusConnected\r
+#. Programmer's name for it: RSLogConnected\r
+#: Indy/IdResourceStrings.pas:39 \r Indy/IdResourceStrings.pas:327
+msgid "Connected."
+msgstr "Conectado."
+
+#. Programmer's name for it: RSStatusDisconnecting\r
+#: Indy/IdResourceStrings.pas:40 \r
+msgid "Disconnecting from %s."
+msgstr "Desconectando desde %s."
+
+#. Programmer's name for it: RSStatusDisconnected\r
+#: Indy/IdResourceStrings.pas:41 \r
+msgid "Not connected."
+msgstr "No conectado."
+
+#. Programmer's name for it: RSStatusText\r
+#: Indy/IdResourceStrings.pas:42 \r
+msgid "%s"
+msgstr "%s"
+
+#. IdRegister\r
+#: Indy/IdResourceStrings.pas:44 \r
+msgid "Indy Clients"
+msgstr ""
+
+#. Programmer's name for it: RSRegIndyServers\r
+#: Indy/IdResourceStrings.pas:45 \r
+msgid "Indy Servers"
+msgstr "Servidores Indy"
+
+#. Programmer's name for it: RSRegIndyMisc\r
+#: Indy/IdResourceStrings.pas:46 \r
+msgid "Indy Misc"
+msgstr "Indy Misc"
+
+#. IdCoder3To4\r
+#: Indy/IdResourceStrings.pas:48 \r
+msgid "Coding table entry not found."
+msgstr ""
+
+#. MessageClient Strings\r
+#: Indy/IdResourceStrings.pas:50 \r
+msgid "Encoding text"
+msgstr ""
+
+#. Programmer's name for it: RSMsgClientEncodingAttachment\r
+#: Indy/IdResourceStrings.pas:51 \r
+msgid "Encoding attachment"
+msgstr "Codificando datos adjuntos"
+
+#. NNTP Exceptions\r
+#: Indy/IdResourceStrings.pas:53 \r
+msgid "Connection explicitly refused by NNTP server."
+msgstr ""
+
+#. Programmer's name for it: RSNNTPStringListNotInitialized\r
+#: Indy/IdResourceStrings.pas:54 \r
+msgid "Stringlist not initialized!"
+msgstr "Lista no inicializada!"
+
+#. Programmer's name for it: RSNNTPNoOnNewsgroupList\r
+#: Indy/IdResourceStrings.pas:55 \r
+msgid "No OnNewsgroupList event has been defined."
+msgstr "El evento OnNewsgroupList no ha sido definido."
+
+#. Programmer's name for it: RSNNTPNoOnNewGroupsList\r
+#: Indy/IdResourceStrings.pas:56 \r
+msgid "No OnNewGroupsList event has been defined."
+msgstr "El evento OnNewGroupsList no ha sido definido."
+
+#. Programmer's name for it: RSNNTPNoOnNewNewsList\r
+#: Indy/IdResourceStrings.pas:57 \r
+msgid "No OnNewNewsList event has been defined."
+msgstr "El evento OnNewNewsList no ha sido definido."
+
+#. HTTP Status\r
+#: Indy/IdResourceStrings.pas:59 \r
+msgid "Chunk Started"
+msgstr ""
+
+#. Programmer's name for it: RSHTTPContinue\r
+#: Indy/IdResourceStrings.pas:60 \r
+msgid "Continue"
+msgstr "Continuar"
+
+#. Programmer's name for it: RSHTTPSwitchingProtocols\r
+#: Indy/IdResourceStrings.pas:61 \r
+msgid "Switching protocols"
+msgstr "Protocolos Switching"
+
+#. Programmer's name for it: RSHTTPCreated\r
+#: Indy/IdResourceStrings.pas:63 \r
+msgid "Created"
+msgstr "Creado"
+
+#. Programmer's name for it: RSHTTPAccepted\r
+#: Indy/IdResourceStrings.pas:64 \r
+msgid "Accepted"
+msgstr "Aceptado"
+
+#. Programmer's name for it: RSHTTPNonAuthoritativeInformation\r
+#: Indy/IdResourceStrings.pas:65 \r
+msgid "Non-authoritative Information"
+msgstr "Información sin autoridad"
+
+#. Programmer's name for it: RSHTTPNoContent\r
+#: Indy/IdResourceStrings.pas:66 \r
+msgid "No Content"
+msgstr "Sin contenido"
+
+#. Programmer's name for it: RSHTTPResetContent\r
+#: Indy/IdResourceStrings.pas:67 \r
+msgid "Reset Content"
+msgstr "Resetear contenido"
+
+#. Programmer's name for it: RSHTTPPartialContent\r
+#: Indy/IdResourceStrings.pas:68 \r
+msgid "Partial Content"
+msgstr "Contenido parcial"
+
+#. Programmer's name for it: RSHTTPMovedPermanently\r
+#: Indy/IdResourceStrings.pas:69 \r
+msgid "Moved Permanently"
+msgstr "Movido permanentemente"
+
+#. Programmer's name for it: RSHTTPMovedTemporarily\r
+#: Indy/IdResourceStrings.pas:70 \r
+msgid "Moved Temporarily"
+msgstr "Movido temporalmente"
+
+#. Programmer's name for it: RSHTTPSeeOther\r
+#: Indy/IdResourceStrings.pas:71 \r
+msgid "See Other"
+msgstr "Ver otro"
+
+#. Programmer's name for it: RSHTTPNotModified\r
+#: Indy/IdResourceStrings.pas:72 \r
+msgid "Not Modified"
+msgstr "No modificado"
+
+#. Programmer's name for it: RSHTTPUseProxy\r
+#: Indy/IdResourceStrings.pas:73 \r
+msgid "Use Proxy"
+msgstr "Usar Proxy"
+
+#. Programmer's name for it: RSHTTPBadRequest\r
+#: Indy/IdResourceStrings.pas:74 \r
+msgid "Bad Request"
+msgstr "Respuesta errónea"
+
+#. Programmer's name for it: RSHTTPUnauthorized\r
+#: Indy/IdResourceStrings.pas:75 \r
+msgid "Unauthorized"
+msgstr "No autorizado"
+
+#. Programmer's name for it: RSHTTPForbidden\r
+#: Indy/IdResourceStrings.pas:76 \r
+msgid "Forbidden"
+msgstr "Prohibido"
+
+#. Programmer's name for it: RSHTTPNotFound\r
+#: Indy/IdResourceStrings.pas:77 \r
+msgid "Not Found"
+msgstr "No encontrado"
+
+#. Programmer's name for it: RSHTTPMethodeNotallowed\r
+#: Indy/IdResourceStrings.pas:78 \r
+msgid "Method not allowed"
+msgstr "Método no admitido"
+
+#. Programmer's name for it: RSHTTPNotAcceptable\r
+#: Indy/IdResourceStrings.pas:79 \r
+msgid "Not Acceptable"
+msgstr "No aceptable"
+
+#. Programmer's name for it: RSHTTPProxyAuthenticationRequired\r
+#: Indy/IdResourceStrings.pas:80 \r
+msgid "Proxy Authentication Required"
+msgstr "Autentificación de Proxy requerida"
+
+#. Programmer's name for it: RSHTTPRequestTimeout\r
+#: Indy/IdResourceStrings.pas:81 \r
+msgid "Request Timeout"
+msgstr "Respuesta fuera de tiempo"
+
+#. Programmer's name for it: RSHTTPConflict\r
+#: Indy/IdResourceStrings.pas:82 \r
+msgid "Conflict"
+msgstr "Conflicto"
+
+#. Programmer's name for it: RSHTTPGone\r
+#: Indy/IdResourceStrings.pas:83 \r
+msgid "Gone"
+msgstr "Ido"
+
+#. Programmer's name for it: RSHTTPLengthRequired\r
+#: Indy/IdResourceStrings.pas:84 \r
+msgid "Length Required"
+msgstr "Tamaño requerido"
+
+#. Programmer's name for it: RSHTTPPreconditionFailed\r
+#: Indy/IdResourceStrings.pas:85 \r
+msgid "Precondition Failed"
+msgstr "Precondición fallida"
+
+#. Programmer's name for it: RSHTTPRequestEntityToLong\r
+#: Indy/IdResourceStrings.pas:86 \r
+msgid "Request Entity To Long"
+msgstr "Entidad de respuesta a alargar"
+
+#. Programmer's name for it: RSHTTPRequestURITooLong\r
+#: Indy/IdResourceStrings.pas:87 \r
+msgid "Request-URI Too Long. 256 Chars max"
+msgstr "Respuesta URI demasiado larga. 256 caracteres máximo"
+
+#. Programmer's name for it: RSHTTPUnsupportedMediaType\r
+#: Indy/IdResourceStrings.pas:88 \r
+msgid "Unsupported Media Type"
+msgstr "Tipo de medio no soportado"
+
+#. Programmer's name for it: RSHTTPInternalServerError\r
+#: Indy/IdResourceStrings.pas:89 \r
+msgid "Internal Server Error"
+msgstr "Hay un error interno del servidor"
+
+#. Programmer's name for it: RSHTTPNotImplemented\r
+#: Indy/IdResourceStrings.pas:90 \r
+msgid "Not Implemented"
+msgstr "No implementado"
+
+#. Programmer's name for it: RSHTTPBadGateway\r
+#: Indy/IdResourceStrings.pas:91 \r
+msgid "Bad Gateway"
+msgstr "Gateway erróneo"
+
+#. Programmer's name for it: RSHTTPServiceUnavailable\r
+#: Indy/IdResourceStrings.pas:92 \r
+msgid "Service Unavailable"
+msgstr "Servicio no disponible"
+
+#. Programmer's name for it: RSHTTPGatewayTimeout\r
+#: Indy/IdResourceStrings.pas:93 \r
+msgid "Gateway timeout"
+msgstr "Gateway fuera de tiempo"
+
+#. Programmer's name for it: RSHTTPHTTPVersionNotSupported\r
+#: Indy/IdResourceStrings.pas:94 \r
+msgid "HTTP version not supported"
+msgstr "Versión de HTTP no soportada"
+
+#. Programmer's name for it: RSHTTPUnknownResponseCode\r
+#: Indy/IdResourceStrings.pas:95 \r
+msgid "Unknown Response Code"
+msgstr "Código de respuesta desconocido"
+
+#. HTTP Other\r
+#: Indy/IdResourceStrings.pas:97 \r
+msgid "Header has already been written."
+msgstr ""
+
+#. Programmer's name for it: RSHTTPErrorParsingCommand\r
+#: Indy/IdResourceStrings.pas:98 \r
+msgid "Error in parsing command."
+msgstr "Hay un error en el comando de corrección."
+
+#. Programmer's name for it: RSHTTPUnsupportedAuthorisationScheme\r
+#: Indy/IdResourceStrings.pas:99 \r
+msgid "Unsupported authorization scheme."
+msgstr "Combinación de autorización no soportada."
+
+#. Programmer's name for it: RSHTTPUnsupportedAuthorisationScheme\r
+#: Indy/IdResourceStrings.pas:101 \r
+msgid "Cannot change session state when the server is active."
+msgstr ""
+
+#. FTP\r
+#. Programmer's name for it: SUnknown\r
+#: Indy/IdResourceStrings.pas:104 \r Internet/XMLDoc.pas:512
+msgid "Unknown"
+msgstr ""
+
+#. Property editor exceptions\r
+#: Indy/IdResourceStrings.pas:106 \r
+msgid "%s is corrupt."
+msgstr ""
+
+#. Programmer's name for it: RSInvalidServiceName\r
+#: Indy/IdResourceStrings.pas:107 \r
+msgid "%s is not a valid service."
+msgstr "%s no es un servicio válido."
+
+#. Stack Error Messages\r
+#: Indy/IdResourceStrings.pas:109 \r
+msgid ""
+"Socket Error # %d\n"
+"%s"
+msgstr ""
+
+#. Programmer's name for it: RSStackEINTR\r
+#: Indy/IdResourceStrings.pas:110 \r
+msgid "Interrupted system call."
+msgstr "Llamada de sistema interrumpida."
+
+#. Programmer's name for it: RSStackEBADF\r
+#: Indy/IdResourceStrings.pas:111 \r
+msgid "Bad file number."
+msgstr "Numero de archivo erróneo."
+
+#. Programmer's name for it: RSStackEACCES\r
+#: Indy/IdResourceStrings.pas:112 \r
+msgid "Access denied."
+msgstr "Acceso denegado."
+
+#. Programmer's name for it: RSStackEFAULT\r
+#: Indy/IdResourceStrings.pas:113 \r
+msgid "Bad address."
+msgstr "Dirección errónea."
+
+#. Programmer's name for it: RSStackEINVAL\r
+#: Indy/IdResourceStrings.pas:114 \r
+msgid "Invalid argument."
+msgstr "Argumento no válido."
+
+#. Programmer's name for it: RSStackEMFILE\r
+#: Indy/IdResourceStrings.pas:115 \r
+msgid "Too many open files."
+msgstr "Demasiados archivos abiertos."
+
+#. Programmer's name for it: RSStackEWOULDBLOCK\r
+#: Indy/IdResourceStrings.pas:116 \r
+msgid "Operation would block. "
+msgstr "Bloquearía la operación. "
+
+#. Programmer's name for it: RSStackEINPROGRESS\r
+#: Indy/IdResourceStrings.pas:117 \r
+msgid "Operation now in progress."
+msgstr "Operación ahora en progreso."
+
+#. Programmer's name for it: RSStackEALREADY\r
+#: Indy/IdResourceStrings.pas:118 \r
+msgid "Operation already in progress."
+msgstr "Operación ya en progreso."
+
+#. Programmer's name for it: RSStackENOTSOCK\r
+#: Indy/IdResourceStrings.pas:119 \r
+msgid "Socket operation on non-socket."
+msgstr "Operación de Socket en non-socket."
+
+#. Programmer's name for it: RSStackEDESTADDRREQ\r
+#: Indy/IdResourceStrings.pas:120 \r
+msgid "Destination address required."
+msgstr "Dirección de destino requerida."
+
+#. Programmer's name for it: RSStackEMSGSIZE\r
+#: Indy/IdResourceStrings.pas:121 \r
+msgid "Message too long."
+msgstr "Mensaje demasiado largo."
+
+#. Programmer's name for it: RSStackEPROTOTYPE\r
+#: Indy/IdResourceStrings.pas:122 \r
+msgid "Protocol wrong type for socket."
+msgstr "Protocolo de tipo incorrecto para socket."
+
+#. Programmer's name for it: RSStackENOPROTOOPT\r
+#: Indy/IdResourceStrings.pas:123 \r
+msgid "Bad protocol option."
+msgstr "Opción de protocolo errónea."
+
+#. Programmer's name for it: RSStackEPROTONOSUPPORT\r
+#: Indy/IdResourceStrings.pas:124 \r
+msgid "Protocol not supported."
+msgstr "Protocolo no soportado."
+
+#. Programmer's name for it: RSStackESOCKTNOSUPPORT\r
+#: Indy/IdResourceStrings.pas:125 \r
+msgid "Socket type not supported."
+msgstr "Tipo de Socket no soportado."
+
+#. Programmer's name for it: RSStackEOPNOTSUPP\r
+#: Indy/IdResourceStrings.pas:126 \r
+msgid "Operation not supported on socket."
+msgstr "Operación no soportada en socket."
+
+#. Programmer's name for it: RSStackEPFNOSUPPORT\r
+#: Indy/IdResourceStrings.pas:127 \r
+msgid "Protocol family not supported."
+msgstr "Familia de protocolo no soportada."
+
+#. Programmer's name for it: RSStackEAFNOSUPPORT\r
+#: Indy/IdResourceStrings.pas:128 \r
+msgid "Address family not supported by protocol family."
+msgstr "Address family not supported by protocol family."
+
+#. Programmer's name for it: RSStackEADDRINUSE\r
+#: Indy/IdResourceStrings.pas:129 \r
+msgid "Address already in use."
+msgstr "Dirección ya en uso."
+
+#. Programmer's name for it: RSStackEADDRNOTAVAIL\r
+#: Indy/IdResourceStrings.pas:130 \r
+msgid "Cannot assign requested address."
+msgstr "No se puede asignar dirección de respuesta."
+
+#. Programmer's name for it: RSStackENETDOWN\r
+#: Indy/IdResourceStrings.pas:131 \r
+msgid "Network is down."
+msgstr "Red caída."
+
+#. Programmer's name for it: RSStackENETUNREACH\r
+#: Indy/IdResourceStrings.pas:132 \r
+msgid "Network is unreachable."
+msgstr ""
+
+#. Programmer's name for it: RSStackENETRESET\r
+#: Indy/IdResourceStrings.pas:133 \r
+msgid "Net dropped connection or reset."
+msgstr "Conexión de red caída o reseteada"
+
+#. Programmer's name for it: RSStackECONNABORTED\r
+#: Indy/IdResourceStrings.pas:134 \r
+msgid "Software caused connection abort."
+msgstr "El software causo que se abortara la conexión."
+
+#. Programmer's name for it: RSStackECONNRESET\r
+#: Indy/IdResourceStrings.pas:135 \r
+msgid "Connection reset by peer."
+msgstr "Connection reset by peer."
+
+#. Programmer's name for it: RSStackENOBUFS\r
+#: Indy/IdResourceStrings.pas:136 \r
+msgid "No buffer space available."
+msgstr "Espacio del búfer no disponible."
+
+#. Programmer's name for it: RSStackEISCONN\r
+#: Indy/IdResourceStrings.pas:137 \r
+msgid "Socket is already connected."
+msgstr "El Socket está actualmente conectado."
+
+#. Programmer's name for it: RSStackENOTCONN\r
+#: Indy/IdResourceStrings.pas:138 \r
+msgid "Socket is not connected."
+msgstr "El Socket no está conectado."
+
+#. Programmer's name for it: RSStackESHUTDOWN\r
+#: Indy/IdResourceStrings.pas:139 \r
+msgid "Cannot send or receive after socket is closed."
+msgstr "No se puede enviar y/o recibir una vez que el socket esté cerrado."
+
+#. Programmer's name for it: RSStackETOOMANYREFS\r
+#: Indy/IdResourceStrings.pas:140 \r
+msgid "Too many references, cannot splice."
+msgstr "Demasiadas referencias, no se pueden unir."
+
+#. Programmer's name for it: RSStackETIMEDOUT\r
+#: Indy/IdResourceStrings.pas:141 \r
+msgid "Connection timed out."
+msgstr "Conexión fuera de tiempo."
+
+#. Programmer's name for it: RSStackECONNREFUSED\r
+#. Programmer's name for it: RSSocksServerConnectionRefusedError\r
+#: Indy/IdResourceStrings.pas:142 \r Indy/IdResourceStrings.pas:284
+msgid "Connection refused."
+msgstr "Conexión rechazada."
+
+#. Programmer's name for it: RSStackELOOP\r
+#: Indy/IdResourceStrings.pas:143 \r
+msgid "Too many levels of symbolic links."
+msgstr "Demasiados niveles de enlaces simbólicos."
+
+#. Programmer's name for it: RSStackENAMETOOLONG\r
+#: Indy/IdResourceStrings.pas:144 \r
+msgid "File name too long."
+msgstr "Nombre de archivo demasiado largo."
+
+#. Programmer's name for it: RSStackEHOSTDOWN\r
+#: Indy/IdResourceStrings.pas:145 \r
+msgid "Host is down."
+msgstr "Host caído."
+
+#. Programmer's name for it: RSStackEHOSTUNREACH\r
+#: Indy/IdResourceStrings.pas:146 \r
+msgid "No route to host."
+msgstr "No guiado al host."
+
+#. Programmer's name for it: RSStackENOTEMPTY\r
+#: Indy/IdResourceStrings.pas:147 \r
+msgid "Directory not empty"
+msgstr "Directorio no vacío"
+
+#. Programmer's name for it: RSStackEPROCLIM\r
+#: Indy/IdResourceStrings.pas:148 \r
+msgid "Too many processes."
+msgstr "Demasiados procesos."
+
+#. Programmer's name for it: RSStackEUSERS\r
+#: Indy/IdResourceStrings.pas:149 \r
+msgid "Too many users."
+msgstr "Demasiados usuarios."
+
+#. Programmer's name for it: RSStackEDQUOT\r
+#: Indy/IdResourceStrings.pas:150 \r
+msgid "Disk Quota Exceeded."
+msgstr "Cuenta de tamaño en disco excedida."
+
+#. Programmer's name for it: RSStackESTALE\r
+#: Indy/IdResourceStrings.pas:151 \r
+msgid "Stale NFS file handle."
+msgstr ""
+
+#. Programmer's name for it: RSStackEREMOTE\r
+#: Indy/IdResourceStrings.pas:152 \r
+msgid "Too many levels of remote in path."
+msgstr "Demasiados niveles de la ruta remota."
+
+#. Programmer's name for it: RSStackSYSNOTREADY\r
+#: Indy/IdResourceStrings.pas:153 \r
+msgid "Network subsystem is unavailable."
+msgstr "Subsistema de red no disponible."
+
+#. Programmer's name for it: RSStackVERNOTSUPPORTED\r
+#: Indy/IdResourceStrings.pas:154 \r
+msgid "WINSOCK DLL Version out of range."
+msgstr "Versión WINSOCK DLL fuera de rango."
+
+#. Programmer's name for it: RSStackNOTINITIALISED\r
+#: Indy/IdResourceStrings.pas:155 \r
+msgid "Winsock not loaded yet."
+msgstr "Winsock no cargado todavía."
+
+#. Programmer's name for it: RSStackHOST_NOT_FOUND\r
+#: Indy/IdResourceStrings.pas:156 \r
+msgid "Host not found."
+msgstr "Host no encontrado."
+
+#. Programmer's name for it: RSStackHOST_NOT_FOUND\r
+#: Indy/IdResourceStrings.pas:158 \r
+msgid "Non-authoritative response (try again or check DNS setup)."
+msgstr ""
+
+#. Programmer's name for it: RSStackNO_RECOVERY\r
+#: Indy/IdResourceStrings.pas:159 \r
+msgid "Non-recoverable errors: FORMERR, REFUSED, NOTIMP."
+msgstr "Errores no recuperables: FORMERR, REFUSED, NOTIMP."
+
+#. Programmer's name for it: RSStackNO_DATA\r
+#: Indy/IdResourceStrings.pas:160 \r
+msgid "Valid name, no data record (check DNS setup)."
+msgstr "Nombre válido, datos no grabados (verifique la configuración DNS)."
+
+#. Programmer's name for it: RSCMDNotRecognized\r
+#: Indy/IdResourceStrings.pas:162 \r
+msgid "command not recognized"
+msgstr "comando no reconocido"
+
+#. Programmer's name for it: RSGopherNotGopherPlus\r
+#: Indy/IdResourceStrings.pas:164 \r
+msgid "%s is not a Gopher+ server"
+msgstr "%s no es un servidor Gopher+"
+
+#. Programmer's name for it: RSCodeNoError\r
+#: Indy/IdResourceStrings.pas:166 \r
+msgid "RCode NO Error"
+msgstr "Hay un error RCode NO"
+
+#. Programmer's name for it: RSCodeQueryFormat\r
+#: Indy/IdResourceStrings.pas:167 \r
+msgid "DNS Server Reports Query Format Error"
+msgstr "El servidor DNS mostró un error en el formato de la consulta"
+
+#. Programmer's name for it: RSCodeQueryServer\r
+#: Indy/IdResourceStrings.pas:168 \r
+msgid "DNS Server Reports Query Server Error"
+msgstr "El servidor DNS mostró un error del servidor en la consulta"
+
+#. Programmer's name for it: RSCodeQueryName\r
+#: Indy/IdResourceStrings.pas:169 \r
+msgid "DNS Server Reports Query Name Error"
+msgstr "El servidor DNS mostró un error en el nombre de la consulta"
+
+#. Programmer's name for it: RSCodeQueryNotImplemented\r
+#: Indy/IdResourceStrings.pas:170 \r
+msgid "DNS Server Reports Query Not Implemented Error"
+msgstr "El servidor DNS mostró un error de No Implementación en la consulta"
+
+#. Programmer's name for it: RSCodeQueryQueryRefused\r
+#: Indy/IdResourceStrings.pas:171 \r
+msgid "DNS Server Reports Query Refused Error"
+msgstr "El servidor DNS mostró un error de rechazo en la consulta"
+
+#. Programmer's name for it: RSCodeQueryUnknownError\r
+#: Indy/IdResourceStrings.pas:172 \r
+msgid "Server Returned Unknown Error"
+msgstr "El servidor retornó un error desconocido"
+
+#. Programmer's name for it: RSDNSMFIsObsolete\r
+#: Indy/IdResourceStrings.pas:174 \r
+msgid "MF is an Obsolete Command. USE MX."
+msgstr "MF es un comando obsoleto. USE MX."
+
+#. Programmer's name for it: RSDNSMDISObsolete\r
+#: Indy/IdResourceStrings.pas:175 \r
+msgid "MD is an Obsolete Command. Use MX."
+msgstr "MD es un comando obsoleto. Use MX."
+
+#. Programmer's name for it: RSDNSMailAObsolete\r
+#: Indy/IdResourceStrings.pas:176 \r
+msgid "MailA is an Obsolete Command. USE MX."
+msgstr "MailA es un comando obsoleto. USE MX."
+
+#. Programmer's name for it: RSDNSMailBNotImplemented\r
+#: Indy/IdResourceStrings.pas:177 \r
+msgid "-Err 501 MailB is not implemented"
+msgstr "-Err 501 MailB no está implementado"
+
+#. Programmer's name for it: RSQueryInvalidQueryCount\r
+#: Indy/IdResourceStrings.pas:179 \r
+msgid "Invaild Query Count %d"
+msgstr "Contador %d de consulta no válido"
+
+#. Programmer's name for it: RSQueryInvalidPacketSize\r
+#: Indy/IdResourceStrings.pas:180 \r
+msgid "Invalid Packet Size %d"
+msgstr "Tamaño de paquete no válido %d"
+
+#. Programmer's name for it: RSQueryLessThanFour\r
+#: Indy/IdResourceStrings.pas:181 \r
+msgid "Received Packet is too small. Less than 4 bytes %d"
+msgstr "El paquete recibido es demasiado pequeño. Más que 4 bytes %d"
+
+#. Programmer's name for it: RSQueryInvalidHeaderID\r
+#: Indy/IdResourceStrings.pas:182 \r
+msgid "Invalid Header Id %d"
+msgstr "Id %d de cabecera invalido"
+
+#. Programmer's name for it: RSQueryLessThanTwelve\r
+#: Indy/IdResourceStrings.pas:183 \r
+msgid "Received Packet is too small. Less than 12 bytes %d"
+msgstr "El paquete recibido es demasiado pequeño. Más que 12 bytes %d"
+
+#. Programmer's name for it: RSQueryPackReceivedTooSmall\r
+#: Indy/IdResourceStrings.pas:184 \r
+msgid "Received Packet is too small. %d"
+msgstr "El paquete recibido es demasiado pequeño. %d"
+
+#. Programmer's name for it: RSLPDDataFileSaved\r
+#: Indy/IdResourceStrings.pas:187 \r
+msgid "Data file saved to %s"
+msgstr "Datos de archivo guardados en %s"
+
+#. Programmer's name for it: RSLPDControlFileSaved\r
+#: Indy/IdResourceStrings.pas:188 \r
+msgid "Control file save to %s"
+msgstr "Archivo de control guardado en %s"
+
+#. Programmer's name for it: RSLPDDirectoryDoesNotExist\r
+#: Indy/IdResourceStrings.pas:189 \r
+msgid "Directory %s does not exist"
+msgstr "El directorio %s no existe"
+
+#. Programmer's name for it: RSLPDServerStartTitle\r
+#: Indy/IdResourceStrings.pas:190 \r
+msgid "Winshoes LPD Server %s "
+msgstr "Servidor Winshoes LPD %s "
+
+#. Programmer's name for it: RSLPDServerActive\r
+#: Indy/IdResourceStrings.pas:191 \r
+msgid "Server status: active"
+msgstr "Estado del servidor: activo"
+
+#. Programmer's name for it: RSLPDQueueStatus\r
+#: Indy/IdResourceStrings.pas:192 \r
+msgid "Queue %s status: %s"
+msgstr "Estado de la cola %s : %s"
+
+#. Programmer's name for it: RSLPDClosingConnection\r
+#: Indy/IdResourceStrings.pas:193 \r
+msgid "closing connection"
+msgstr "Cerrando conexión"
+
+#. Programmer's name for it: RSLPDUnknownQueue\r
+#: Indy/IdResourceStrings.pas:194 \r
+msgid "Unknown queue %s"
+msgstr "Cola %s desconocida"
+
+#. Programmer's name for it: RSLPDConnectTo\r
+#: Indy/IdResourceStrings.pas:195 \r
+msgid "connected with %s"
+msgstr "Conectado con %s"
+
+#. Programmer's name for it: RSLPDAbortJob\r
+#: Indy/IdResourceStrings.pas:196 \r
+msgid "abort job"
+msgstr "Abortar trabajo"
+
+#. Programmer's name for it: RSLPDReceiveControlFile\r
+#: Indy/IdResourceStrings.pas:197 \r
+msgid "Receive control file"
+msgstr "Recibir archivo de control"
+
+#. Programmer's name for it: RSLPDReceiveDataFile\r
+#: Indy/IdResourceStrings.pas:198 \r
+msgid "Receive data file"
+msgstr "Recibir archivo de datos"
+
+#. Programmer's name for it: RSLPDNoQueuesDefined\r
+#: Indy/IdResourceStrings.pas:201 \r
+msgid "Error: no queues defined"
+msgstr "Error: Listas de trabajo no definidas"
+
+#. Programmer's name for it: RSTimeOut\r
+#. SocketForm..Pages..PropPage..TimeoutGroup..Caption\r
+#: Indy/IdResourceStrings.pas:204 \r Vcl/ScktMain.dfm:180
+msgid "Timeout"
+msgstr "Fuera de tiempo"
+
+#. Programmer's name for it: RSTFTPUnexpectedOp\r
+#: Indy/IdResourceStrings.pas:205 \r
+msgid "Unexpected operation from %s:%d"
+msgstr "Operación inesperada desde %s:%d"
+
+#. Programmer's name for it: RSTFTPUnsupportedTrxMode\r
+#: Indy/IdResourceStrings.pas:206 \r
+msgid "Unsupported transfer mode: \"%s\""
+msgstr "Modo de trasnferencia no soportado: \"%s\""
+
+#. Programmer's name for it: RSTFTPUnsupportedTrxMode\r
+#: Indy/IdResourceStrings.pas:208 \r
+msgid "Unable to complete write request, progress halted at %d bytes"
+msgstr ""
+
+#. Programmer's name for it: RSTFTPFileNotFound\r
+#: Indy/IdResourceStrings.pas:209 \r
+msgid "Unable to open %s"
+msgstr "No se puede abrir %s"
+
+#. Programmer's name for it: RSTFTPAccessDenied\r
+#: Indy/IdResourceStrings.pas:210 \r
+msgid "Access to %s denied"
+msgstr "Acceso a %s denegado"
+
+#. Programmer's name for it: RSTIdTextInvalidCount\r
+#: Indy/IdResourceStrings.pas:213 \r
+msgid "Invalid Text count. TIdText must be greater than 1"
+msgstr "Contador de texto no válido. TIdText debe ser mayor que 1"
+
+#. Programmer's name for it: RSTIdTextInvalidCount\r
+#: Indy/IdResourceStrings.pas:215 \r
+msgid "TIdMessagePart can not be created.  Use descendant classes. "
+msgstr "TIdMessagePart no puede ser creado.  Use descendant classes. "
+
+#. Programmer's name for it: RSPOP3FieldNotSpecified\r
+#: Indy/IdResourceStrings.pas:218 \r
+msgid " not specified"
+msgstr " no especificado"
+
+#. Programmer's name for it: RSTELNETSRVUsernamePrompt\r
+#: Indy/IdResourceStrings.pas:221 \r
+msgid "Username: "
+msgstr "Nombre de usuario: "
+
+#. Programmer's name for it: RSTELNETSRVPasswordPrompt\r
+#: Indy/IdResourceStrings.pas:222 \r
+msgid "Password: "
+msgstr "Contraseña: "
+
+#. Programmer's name for it: RSTELNETSRVInvalidLogin\r
+#: Indy/IdResourceStrings.pas:223 \r
+msgid "Invalid Login."
+msgstr "Nombre de usuario no válido."
+
+#. Programmer's name for it: RSTELNETSRVMaxloginAttempt\r
+#: Indy/IdResourceStrings.pas:224 \r
+msgid "Allowed login attempts exceeded, good bye."
+msgstr "No se permiten más intentos de acceso, adios."
+
+#. Programmer's name for it: RSTELNETSRVNoAuthHandler\r
+#: Indy/IdResourceStrings.pas:225 \r
+msgid "No authentication handler has been specified."
+msgstr "No ha sido espeficiada una atentifiación."
+
+#. Programmer's name for it: RSTELNETSRVWelcomeString\r
+#: Indy/IdResourceStrings.pas:226 \r
+msgid "Indy Telnet Server"
+msgstr "Servidor Telnet Indy"
+
+#. Programmer's name for it: RSTELNETSRVOnDataAvailableIsNil\r
+#: Indy/IdResourceStrings.pas:227 \r
+msgid "OnDataAvailable event is nil."
+msgstr "El evento OnDataAvailable es nulo."
+
+#. Programmer's name for it: RSTELNETCLIConnectError\r
+#: Indy/IdResourceStrings.pas:230 \r
+msgid "server not responding"
+msgstr "server not responding"
+
+#. Programmer's name for it: RSTELNETCLIReadError\r
+#: Indy/IdResourceStrings.pas:231 \r
+msgid "Server did not respond."
+msgstr "El servidor no respondió."
+
+#. Programmer's name for it: RSNETCALInvalidIPString\r
+#: Indy/IdResourceStrings.pas:234 \r
+msgid "The string %s does not translate into a valid IP."
+msgstr "El texto %s no se puede pasar a una IP válida."
+
+#. Programmer's name for it: RSNETCALCInvalidNetworkMask\r
+#: Indy/IdResourceStrings.pas:235 \r
+msgid "Invalid network mask."
+msgstr "Máscara de red no válida."
+
+#. Programmer's name for it: RSNETCALCInvalidValueLength\r
+#: Indy/IdResourceStrings.pas:236 \r
+msgid "Invalid value length: Should be 32."
+msgstr "Valor de anchura no válido: Debe ser 32."
+
+#. Programmer's name for it: RSNETCALCInvalidValueLength\r
+#: Indy/IdResourceStrings.pas:238 \r
+msgid ""
+"There is too many IP addresses in the specified range (%d) to be displayed "
+"at design time."
+msgstr ""
+"There is too many IP addresses in the specified range (%d) to be displayed "
+"at design time."
+
+#. Programmer's name for it: RSAAboutFormCaption\r
+#: Indy/IdResourceStrings.pas:241 \r
+msgid "About"
+msgstr "Acerca de..."
+
+#. Programmer's name for it: RSAAboutBoxCompName\r
+#: Indy/IdResourceStrings.pas:242 \r
+msgid "Internet Direct (Indy)"
+msgstr "Internet Direct (Indy)"
+
+#. Programmer's name for it: RSAAboutMenuItemName\r
+#: Indy/IdResourceStrings.pas:243 \r
+msgid "About Internet &Direct (Indy) %s..."
+msgstr "Acerca de Internet &Direct (Indy) %s..."
+
+#. Programmer's name for it: RSAAboutBoxVersion\r
+#: Indy/IdResourceStrings.pas:244 \r
+msgid "Version %s"
+msgstr "Versión %s"
+
+#. Programmer's name for it: RSAAboutBoxCopyright\r
+#: Indy/IdResourceStrings.pas:250 \r
+msgid "For the latest updates and information please visit:"
+msgstr "For the latest updates and information please visit:"
+
+#. Programmer's name for it: RSAAboutBoxIndyWebsite\r
+#: Indy/IdResourceStrings.pas:251 \r
+msgid "http://www.nevrona.com/indy/"
+msgstr "http://www.nevrona.com/indy/"
+
+#. Programmer's name for it: RSAAboutCreditsCoordinator\r
+#: Indy/IdResourceStrings.pas:252 \r
+msgid "Project Coordinator"
+msgstr "Coordinador de proyecto"
+
+#. Programmer's name for it: RSAAboutCreditsCoCordinator\r
+#: Indy/IdResourceStrings.pas:253 \r
+msgid "Project Co-Coordinator"
+msgstr "Ayte. de Coordinador de proyecto"
+
+#. Programmer's name for it: RSAAboutCreditsCoCordinator\r
+#: Indy/IdResourceStrings.pas:257 \r
+msgid "Call to %s.GetByte [property Bytes] with index <> [0..%d]"
+msgstr ""
+
+#. Programmer's name for it: RSTunnelTransformErrorBS\r
+#: Indy/IdResourceStrings.pas:258 \r
+msgid "Error in transformation before send"
+msgstr "Hay un error en la transformación antes enviada"
+
+#. Programmer's name for it: RSTunnelTransformError\r
+#: Indy/IdResourceStrings.pas:259 \r
+msgid "Transform failed"
+msgstr "Tranformación fallida"
+
+#. Programmer's name for it: RSTunnelCRCFailed\r
+#: Indy/IdResourceStrings.pas:260 \r
+msgid "CRC Failed"
+msgstr "CRC fallido"
+
+#. Programmer's name for it: RSTunnelConnectMsg\r
+#: Indy/IdResourceStrings.pas:261 \r
+msgid "Connecting"
+msgstr "Conectando"
+
+#. Programmer's name for it: RSTunnelDisconnectMsg\r
+#: Indy/IdResourceStrings.pas:262 \r
+msgid "Disconnect"
+msgstr "Desconectado"
+
+#. Programmer's name for it: RSTunnelConnectToMasterFailed\r
+#: Indy/IdResourceStrings.pas:263 \r
+msgid "Cannt connect to the Master server"
+msgstr "No se puede conectar al servidor maestro"
+
+#. Programmer's name for it: RSTunnelDontAllowConnections\r
+#: Indy/IdResourceStrings.pas:264 \r
+msgid "Do not allow connctions now"
+msgstr "No se encuentran conecxiones ahora"
+
+#. Programmer's name for it: RSTunnelMessageTypeError\r
+#: Indy/IdResourceStrings.pas:265 \r
+msgid "Message type recognition error"
+msgstr "Hay un error de tipo de reconocimiento"
+
+#. Programmer's name for it: RSTunnelMessageHandlingError\r
+#: Indy/IdResourceStrings.pas:266 \r
+msgid "Message handling failed"
+msgstr "Message handling failed"
+
+#. Programmer's name for it: RSTunnelMessageInterpretError\r
+#: Indy/IdResourceStrings.pas:267 \r
+msgid "Interpretation of message failed"
+msgstr "Interpretación de mensaje fallida"
+
+#. Programmer's name for it: RSTunnelMessageCustomInterpretError\r
+#: Indy/IdResourceStrings.pas:268 \r
+msgid "Custom message interpretation failed"
+msgstr "Interpretación del mensaje personalizado fallida"
+
+#. Programmer's name for it: RSSocksRequestFailed\r
+#: Indy/IdResourceStrings.pas:271 \r
+msgid "Request rejected or failed."
+msgstr "Respuesta rechazada o fallida."
+
+#. Programmer's name for it: RSSocksRequestFailed\r
+#: Indy/IdResourceStrings.pas:273 \r
+msgid "Request rejected because SOCKS server cannot connect."
+msgstr "Request rejected because SOCKS server cannot connect."
+
+#. Programmer's name for it: RSSocksRequestFailed\r
+#: Indy/IdResourceStrings.pas:275 \r
+msgid ""
+"Request rejected because the client program and identd report different user-"
+"ids."
+msgstr ""
+"Request rejected because the client program and identd report different user-"
+"ids."
+
+#. Programmer's name for it: RSSocksUnknownError\r
+#: Indy/IdResourceStrings.pas:276 \r
+msgid "Unknown socks error."
+msgstr "Hay un error de sock desconocido."
+
+#. Programmer's name for it: RSSocksServerRespondError\r
+#: Indy/IdResourceStrings.pas:277 \r
+msgid "Socks server did not respond."
+msgstr "El Sock del servidor no respondió."
+
+#. Programmer's name for it: RSSocksAuthMethodError\r
+#: Indy/IdResourceStrings.pas:278 \r
+msgid "Invalid socks authentication method."
+msgstr "Método de autentificación de socks no válida."
+
+#. Programmer's name for it: RSSocksAuthError\r
+#: Indy/IdResourceStrings.pas:279 \r
+msgid "Authentication error to socks server."
+msgstr "Hay un error de autentificación al socks del servidor."
+
+#. Programmer's name for it: RSSocksServerGeneralError\r
+#: Indy/IdResourceStrings.pas:280 \r
+msgid "General SOCKS server failure."
+msgstr "Hay un error general de SOCKS del servidor."
+
+#. Programmer's name for it: RSSocksServerPermissionError\r
+#: Indy/IdResourceStrings.pas:281 \r
+msgid "Connection not allowed by ruleset."
+msgstr "Conexión no soportada por ruleset."
+
+#. Programmer's name for it: RSSocksServerNetUnreachableError\r
+#: Indy/IdResourceStrings.pas:282 \r
+msgid "Network unreachable."
+msgstr "Red inaccesible."
+
+#. Programmer's name for it: RSSocksServerHostUnreachableError\r
+#: Indy/IdResourceStrings.pas:283 \r
+msgid "Host unreachable."
+msgstr "Host inaccesible."
+
+#. Programmer's name for it: RSSocksServerTTLExpiredError\r
+#: Indy/IdResourceStrings.pas:285 \r
+msgid "TTL expired."
+msgstr "TTL caducada."
+
+#. Programmer's name for it: RSSocksServerCommandError\r
+#: Indy/IdResourceStrings.pas:286 \r
+msgid "Command not supported."
+msgstr "Comando no soportado."
+
+#. Programmer's name for it: RSSocksServerAddressError\r
+#: Indy/IdResourceStrings.pas:287 \r
+msgid "Address type not supported."
+msgstr "Tipo de dirección no soportada."
+
+#. Programmer's name for it: RSDestinationFileAlreadyExists\r
+#: Indy/IdResourceStrings.pas:290 \r
+msgid "Destination file already exists."
+msgstr "El archivo de destino ya existe."
+
+#. Programmer's name for it: RSSSLAcceptError\r
+#: Indy/IdResourceStrings.pas:293 \r
+msgid "Error accepting connection with SSL."
+msgstr "Se ha producido un error al aceptar la conexión con SSL."
+
+#. Programmer's name for it: RSSSLConnectError\r
+#: Indy/IdResourceStrings.pas:294 \r
+msgid "Error connecting with SSL."
+msgstr "Se ha producido un error al conectar con SSL."
+
+#. Programmer's name for it: RSSSLSettingChiperError\r
+#: Indy/IdResourceStrings.pas:295 \r
+msgid "SetCipher failed."
+msgstr "SetCipher fallido."
+
+#. Programmer's name for it: RSSSLCreatingContextError\r
+#: Indy/IdResourceStrings.pas:296 \r
+msgid "Error creating SSL context."
+msgstr "Se ha producido un error al crear un contexto SSL."
+
+#. Programmer's name for it: RSSSLLoadingRootCertError\r
+#: Indy/IdResourceStrings.pas:297 \r
+msgid "Could not load root certificate."
+msgstr "No se puede leer el certificado del administrador."
+
+#. Programmer's name for it: RSSSLLoadingCertError\r
+#: Indy/IdResourceStrings.pas:298 \r
+msgid "Could not load certificate."
+msgstr "No se puede leer el certificado."
+
+#. Programmer's name for it: RSSSLLoadingKeyError\r
+#: Indy/IdResourceStrings.pas:299 \r
+msgid "Could not load key, check password."
+msgstr "No se puede cargar la clave, verifique la contraseña."
+
+#. Programmer's name for it: RSSSLGetMethodError\r
+#: Indy/IdResourceStrings.pas:300 \r
+msgid "Error geting SSL method."
+msgstr "Se ha producido un error al obtener un método SSL."
+
+#. Programmer's name for it: RSSSLDataBindingError\r
+#: Indy/IdResourceStrings.pas:301 \r
+msgid "Error binding data to SSL socket."
+msgstr "Se ha producido un error al encuadernar datos al socket SSL."
+
+#. Programmer's name for it: RSMsgCmpEdtrNew\r
+#: Indy/IdResourceStrings.pas:303 \r
+msgid "&New Message Part..."
+msgstr "&Nueva parte de mensaje..."
+
+#. Programmer's name for it: RSMsgCmpEdtrExtraHead\r
+#: Indy/IdResourceStrings.pas:304 \r
+msgid "Extra Headers Text Editor"
+msgstr "Editor de texto de cabeceras extra"
+
+#. Programmer's name for it: RSMsgCmpEdtrBodyText\r
+#: Indy/IdResourceStrings.pas:305 \r
+msgid "Body Text Editor"
+msgstr "Editor de texto del cuerpo"
+
+#. Programmer's name for it: RSICMPNotEnoughtBytes\r
+#: Indy/IdResourceStrings.pas:307 \r
+msgid "Not enough bytes received"
+msgstr "No se han recibido los suficientes datos"
+
+#. Programmer's name for it: RSICMPNonEchoResponse\r
+#: Indy/IdResourceStrings.pas:308 \r
+msgid "Non-echo type response received"
+msgstr "Respuesta recibida de tipo No-Eco"
+
+#. Programmer's name for it: RSICMPWrongDestination\r
+#: Indy/IdResourceStrings.pas:309 \r
+msgid "Received someone else's packet"
+msgstr "Recibidos algunos paquetes"
+
+#. Programmer's name for it: RSNNTPServerNotRecognized\r
+#: Indy/IdResourceStrings.pas:311 \r
+msgid "command not recognized (%s)"
+msgstr "Comando no reconocido (%s)"
+
+#. Programmer's name for it: RSNNTPServerGoodBye\r
+#: Indy/IdResourceStrings.pas:312 \r
+msgid "Goodbye"
+msgstr "Adios"
+
+#. Programmer's name for it: RSGopherServerNoProgramCode\r
+#: Indy/IdResourceStrings.pas:314 \r
+msgid "Error: No program code to return request!"
+msgstr "Error: Sin código de programa para ofrecer respuesta!"
+
+#. Programmer's name for it: RSOSSLModeNotSet\r
+#: Indy/IdResourceStrings.pas:317 \r
+msgid "Mode has not been set."
+msgstr "El modo no ha sido asignado."
+
+#. Programmer's name for it: RSOSSLCouldNotLoadSSLLibrary\r
+#: Indy/IdResourceStrings.pas:318 \r
+msgid "Could not load SSL library."
+msgstr "No se puede leer la librería SSL."
+
+#. Programmer's name for it: RSOSSLStatusString\r
+#: Indy/IdResourceStrings.pas:319 \r
+msgid "SSL status: \"%s\""
+msgstr "Estado SSL: \"%s\""
+
+#. Programmer's name for it: RSOSSLConnectionDropped\r
+#: Indy/IdResourceStrings.pas:320 \r
+msgid "SSL connection has dropped."
+msgstr "La conexión SSL ha sido detenida."
+
+#. Programmer's name for it: RSOSSLCertificateLookup\r
+#: Indy/IdResourceStrings.pas:321 \r
+msgid "SSL certificate request error."
+msgstr "Hay un error en la respuesta de certificado SSL."
+
+#. Programmer's name for it: RSOSSLInternal\r
+#: Indy/IdResourceStrings.pas:322 \r
+msgid "SSL library internal error."
+msgstr "Hay un error interno de librería SSL."
+
+#. Programmer's name for it: RSWSockStack\r
+#: Indy/IdResourceStrings.pas:325 \r
+msgid "Winsock stack"
+msgstr "Winsock stack"
+
+#. Programmer's name for it: RSLogRecV\r
+#: Indy/IdResourceStrings.pas:328 \r
+msgid "Recv: "
+msgstr "Recivido: "
+
+#. Programmer's name for it: RSLogSent\r
+#: Indy/IdResourceStrings.pas:329 \r
+msgid "Sent: "
+msgstr "Enviado: "
+
+#. Programmer's name for it: RSLogDisconnected\r
+#: Indy/IdResourceStrings.pas:330 \r
+msgid "Disconnected."
+msgstr "Desconectado."
+
+#. Programmer's name for it: RSLogEOL\r
+#: Indy/IdResourceStrings.pas:331 \r
+msgid "<EOL>"
+msgstr "<EOL>"
+
+#. Programmer's name for it: sActionDoesNotProvideResponse\r
+#: Internet/AdaptReq.pas:459 \r
+msgid "Action does not provide response"
+msgstr ""
+
+#. Programmer's name for it: sActionCantRespondToUnkownHTTPMethod\r
+#: Internet/AdaptReq.pas:460 \r
+msgid "Action can't respone to unknown HTTP method"
+msgstr ""
+
+#. Programmer's name for it: sActionCantRedirectToBlankURL\r
+#: Internet/AdaptReq.pas:461 \r
+msgid "Action can't redirect to blank URL"
+msgstr ""
+
+#. Programmer's name for it: sOnlyOneDataModuleAllowed\r
+#: Internet/BrkrConst.pas:20 \r
+msgid "Only one data module per application"
+msgstr "Sólo se permite un módulo de datos por aplicación"
+
+#. Programmer's name for it: sNoDataModulesRegistered\r
+#: Internet/BrkrConst.pas:21 \r
+msgid "No data modules registered"
+msgstr "No hay módulos de datos registrados"
+
+#. Programmer's name for it: sNoDispatcherComponent\r
+#: Internet/BrkrConst.pas:22 \r
+msgid "No dispatcher component found on data module"
+msgstr ""
+
+#. Programmer's name for it: sNoWebModulesActivated\r
+#: Internet/BrkrConst.pas:23 \r
+msgid "No automatically activated data modules"
+msgstr ""
+
+#. Programmer's name for it: sTooManyActiveConnections\r
+#: Internet/BrkrConst.pas:25 \r
+msgid ""
+"Maximum number of concurrent connections exceeded.  Please try again later"
+msgstr ""
+
+#. Programmer's name for it: sInternalServerError\r
+#: Internet/BrkrConst.pas:29 \r
+msgid ""
+"<html><title>Internal Server Error 500</title>\n"
+"<h1>Internal Server Error 500</h1><hr>\n"
+"Exception: %s<br>\n"
+"Message: %s<br></html>\n"
+msgstr ""
+
+#. Programmer's name for it: sDocumentMoved\r
+#: Internet/BrkrConst.pas:33 \r
+msgid ""
+"<html><title>Document Moved 302</title>\n"
+"<body><h1>Object Moved</h1><hr>\n"
+"This Object may be found <a HREF=\"%s\">here.</a><br>\n"
+"<br></body></html>\n"
+msgstr ""
+
+#. Programmer's name for it: SDescription\r
+#: Internet/DTDSchema.pas:57 \r
+msgid "DTD to XML Schema Translator (.dtd <-> .xsd)"
+msgstr ""
+
+#. Programmer's name for it: SNodeExpected\r
+#: Internet/msxmldom.pas:401 \r
+msgid "Node cannot be null"
+msgstr ""
+
+#. Programmer's name for it: SMSDOMNotInstalled\r
+#: Internet/msxmldom.pas:402 \r
+msgid "Microsoft MSXML is not installed"
+msgstr ""
+
+#. Programmer's name for it: sInvalidISAPIApp\r
+#: Internet/NSToIS.pas:109 \r
+msgid "Invalid ISAPI application: %s"
+msgstr ""
+
+#. Programmer's name for it: sUnSupportedISAPIApp\r
+#: Internet/NSToIS.pas:110 \r
+msgid "Unsupported ISAPI Application version: %.8x"
+msgstr ""
+
+#. Programmer's name for it: sGEVFailed\r
+#: Internet/NSToIS.pas:111 \r
+msgid "Call to GetExtensionVersion FAILED. Error Code: %d"
+msgstr ""
+
+#. Programmer's name for it: sErrorLoadingISAPIApp\r
+#: Internet/NSToIS.pas:112 \r
+msgid "Error loading ISAPI Application: %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidRedirectParam\r
+#: Internet/NSToIS.pas:113 \r
+msgid "Invalid Redirect parameter"
+msgstr ""
+
+#. Programmer's name for it: sISAPIAppError\r
+#: Internet/NSToIS.pas:114 \r
+msgid "ISAPI Application Error"
+msgstr ""
+
+#. Adapter errors\r
+#: Internet/SiteConst.pas:16 \r
+msgid "Field %s requires a value"
+msgstr ""
+
+#. Programmer's name for it: sFieldDoesNotAllowMultipleValues\r
+#: Internet/SiteConst.pas:17 \r
+msgid "%s does not allow multiple values"
+msgstr ""
+
+#. Programmer's name for it: sFieldDoesNotAllowMultipleFiles\r
+#: Internet/SiteConst.pas:18 \r
+msgid "%s does not allow multiple files"
+msgstr ""
+
+#. Programmer's name for it: sFieldRequiresAFile\r
+#: Internet/SiteConst.pas:19 \r
+msgid "%s requires a file"
+msgstr ""
+
+#. Programmer's name for it: sFieldModificationNotPermitted\r
+#: Internet/SiteConst.pas:20 \r
+msgid "Modification of %s is not permitted"
+msgstr ""
+
+#. Programmer's name for it: sActionExecutionNotPermitted\r
+#: Internet/SiteConst.pas:21 \r
+msgid "Execution of action %s is not permitted"
+msgstr ""
+
+#. Programmer's name for it: sFieldViewNotPermitted\r
+#: Internet/SiteConst.pas:22 \r
+msgid "Field view not permitted"
+msgstr ""
+
+#. Programmer's name for it: sAdapterModificationNotPermitted\r
+#: Internet/SiteConst.pas:23 \r
+msgid "Data Modification is not permitted"
+msgstr ""
+
+#. Programmer's name for it: sFileUploadNotSupported\r
+#: Internet/SiteConst.pas:24 \r
+msgid "%s does not support file upload"
+msgstr ""
+
+#. Programmer's name for it: sNoLoginPage\r
+#: Internet/SiteConst.pas:25 \r
+msgid "Login page is not defined"
+msgstr ""
+
+#. Programmer's name for it: sPageNotFound\r
+#: Internet/SiteConst.pas:26 \r
+msgid "Web Page not found: %s"
+msgstr ""
+
+#. Programmer's name for it: sPageContentNotProvided\r
+#: Internet/SiteConst.pas:27 \r
+msgid "Web Page does not provide content"
+msgstr ""
+
+#. Programmer's name for it: sImageNotProvided\r
+#: Internet/SiteConst.pas:28 \r
+msgid "Field %s did not provide an image"
+msgstr ""
+
+#. DataSetAdapter errors\r
+#: Internet/SiteConst.pas:31 \r
+msgid "Unknown Adapter mode: %s"
+msgstr "Modo de adaptador desconocido: %s"
+
+#. Programmer's name for it: sNilAdapterDataSet\r
+#: Internet/SiteConst.pas:32 \r
+msgid "DataSet is nil"
+msgstr "DataSet no está asignado"
+
+#. Programmer's name for it: sAdapterRowNotFound\r
+#: Internet/SiteConst.pas:33 \r
+msgid "Row not found in %s"
+msgstr "No se ha encontrado la fila en %s"
+
+#. Programmer's name for it: sFieldChangedByAnotherUser\r
+#: Internet/SiteConst.pas:34 \r
+msgid "Field %s changed by another user"
+msgstr ""
+
+#. Programmer's name for it: sAdapterFieldNotFound\r
+#: Internet/SiteConst.pas:35 \r
+msgid "Field not found: %s"
+msgstr ""
+
+#. Programmer's name for it: sDataSetPropertyIsNil\r
+#: Internet/SiteConst.pas:36 \r
+msgid "%s: DataSet property is nil"
+msgstr "%s: Propiedad DataSet no está asignada"
+
+#. Programmer's name for it: sDataSetUnknownKeyFields\r
+#: Internet/SiteConst.pas:37 \r
+msgid "%0:s: Dataset %1:s unknown keyfields"
+msgstr ""
+
+#. Programmer's name for it: sDataSetNotActive\r
+#: Internet/SiteConst.pas:38 \r
+msgid "%0:s: Dataset %1:s not active"
+msgstr "%0:s: Dataset %1:s no está activa"
+
+#. Programmer's name for it: sValueFieldIsBlank\r
+#: Internet/SiteConst.pas:39 \r
+msgid "%0:s: ValueField property value is blank"
+msgstr ""
+
+#. XSLPageProducer errors\r
+#: Internet/SiteConst.pas:42 \r
+msgid "Missing XML Data Component"
+msgstr "Se ha perdido el componente de datos XML"
+
+#. Programmer's name for it: SNoXMLDocument\r
+#: Internet/SiteConst.pas:43 \r
+msgid "Could not create XMLDocument"
+msgstr ""
+
+#. Add Adapter Fields Editor\r
+#. Programmer's name for it: sAddFieldItems\r
+#: Internet/SiteConst.pas:46 \r Internet/SiteConst.pas:59
+msgid "Add Fields..."
+msgstr ""
+
+#. Programmer's name for it: sAddAllAdapterData\r
+#. Programmer's name for it: sAddAllFieldItems\r
+#: Internet/SiteConst.pas:47 \r Internet/SiteConst.pas:60
+msgid "Add All Fields"
+msgstr ""
+
+#. Programmer's name for it: sAddAdapterDataDlgCaption\r
+#. Programmer's name for it: sAddFieldItemsDlgCaption\r
+#. AddFields..Caption\r
+#: Internet/SiteConst.pas:48 \r Internet/SiteConst.pas:61 Property\r
+#: Editors/DSAdd.dfm:6
+msgid "Add Fields"
+msgstr ""
+
+#. Programmer's name for it: sAddAdapterActions\r
+#: Internet/SiteConst.pas:49 \r
+msgid "Add Actions..."
+msgstr ""
+
+#. Programmer's name for it: sAddAllAdapterActions\r
+#: Internet/SiteConst.pas:50 \r
+msgid "Add All Actions"
+msgstr ""
+
+#. Programmer's name for it: sAddAdapterActionsDlgCaption\r
+#: Internet/SiteConst.pas:51 \r
+msgid "Add Actions"
+msgstr ""
+
+#. Do not location\r
+#. Programmer's name for it: sActionCategoryName\r
+#: Internet/SiteConst.pas:52 \r ToolsAPI/DesignIntf.pas:428
+msgid "Action"
+msgstr ""
+
+#. Programmer's name for it: sAddCommands\r
+#: Internet/SiteConst.pas:53 \r
+msgid "Add Commands..."
+msgstr ""
+
+#. Programmer's name for it: sAddAllCommands\r
+#: Internet/SiteConst.pas:54 \r
+msgid "Add All Commands"
+msgstr ""
+
+#. Programmer's name for it: sAddCommandsDlgCaption\r
+#: Internet/SiteConst.pas:55 \r
+msgid "Add Commands"
+msgstr ""
+
+#. Programmer's name for it: sAddColumns\r
+#: Internet/SiteConst.pas:56 \r
+msgid "Add Columns..."
+msgstr ""
+
+#. Programmer's name for it: sAddAllColumns\r
+#: Internet/SiteConst.pas:57 \r
+msgid "Add All Columns"
+msgstr ""
+
+#. Programmer's name for it: sAddColumnsDlgCaption\r
+#: Internet/SiteConst.pas:58 \r
+msgid "Add Columns"
+msgstr ""
+
+#. SitePageProducer errors\r
+#: Internet/SiteConst.pas:65 \r
+msgid "%s: Adapter property is nil"
+msgstr ""
+
+#. Programmer's name for it: sAdapterFieldNameIsBlank\r
+#: Internet/SiteConst.pas:66 \r
+msgid "%s: Fieldname is blank"
+msgstr ""
+
+#. 0 - Component name, 1 - Adapter Field name\r
+#: Internet/SiteConst.pas:67 \r
+msgid "%0:s: Field %1:s not found in associated Adapter"
+msgstr ""
+
+#. Programmer's name for it: sAdapterActionNameIsBlank\r
+#: Internet/SiteConst.pas:68 \r
+msgid "%s: Action name is blank"
+msgstr ""
+
+#. 0 - Component name, 1 - Adapter Action name\r
+#: Internet/SiteConst.pas:69 \r
+msgid "%0:s: Action %1:s not found in associated Adapter"
+msgstr ""
+
+#. Programmer's name for it: sDisplayComponentPropertyIsNil\r
+#: Internet/SiteConst.pas:70 \r
+msgid "%s: DisplayComponent property is nil"
+msgstr ""
+
+#. LoginAdapter validation\r
+#: Internet/SiteConst.pas:75 \r
+msgid "Password must not be blank"
+msgstr ""
+
+#. Programmer's name for it: sBlankUserName\r
+#: Internet/SiteConst.pas:76 \r
+msgid "Username must not be blank"
+msgstr ""
+
+#. 0 - Request identifier, 1 - object identifier\r
+#: Internet/SiteConst.pas:79 \r
+msgid "Adapter Request not handled: %0:s, %1:s"
+msgstr ""
+
+#. Programmer's name for it: sDispatchBlankPageName\r
+#: Internet/SiteConst.pas:80 \r
+msgid "Dispatching blank page name"
+msgstr ""
+
+#. Programmer's name for it: sPageAccessDenied\r
+#: Internet/SiteConst.pas:81 \r
+msgid "Page access denied"
+msgstr "Acceso denegado a la página"
+
+#. Programmer's name for it: sPageDoesNotSupportRedirect\r
+#: Internet/SiteConst.pas:82 \r
+msgid "Web Page does not support redirect"
+msgstr ""
+
+#. Include errors\r
+#: Internet/SiteConst.pas:85 \r
+msgid "Can't find included page: %s"
+msgstr ""
+
+#. Programmer's name for it: sInclusionNotSupported\r
+#: Internet/SiteConst.pas:86 \r
+msgid "Page %s does not support inclusion"
+msgstr ""
+
+#. Programmer's name for it: sRecursiveIncludeFile\r
+#: Internet/SiteConst.pas:87 \r
+msgid "Include file %s includes itself"
+msgstr ""
+
+#. DB Image errors\r
+#: Internet/SiteConst.pas:90 \r
+msgid "Incorrect image format (%s) for field %%s"
+msgstr ""
+
+#. Programmer's name for it: sFileExpected\r
+#: Internet/SiteConst.pas:91 \r
+msgid "Uploaded file expected for field %s"
+msgstr ""
+
+#. WebUserList names - must be valid identifiers\r
+#: Internet/SiteConst.pas:94 \r
+msgid "UserName"
+msgstr "Nombre de usuario"
+
+#. Programmer's name for it: sWebUserPassword\r
+#. PasswordDialog..GroupBox1..Caption\r
+#: Internet/SiteConst.pas:95 \r Clx/QDBPWDlg.xfm:42 Vcl/DbPWDlg.dfm:40
+msgid "Password"
+msgstr "Contraseña"
+
+#. Programmer's name for it: sWebUserAccessRights\r
+#: Internet/SiteConst.pas:96 \r
+msgid "AccessRights"
+msgstr ""
+
+#. WebUserList errors\r
+#: Internet/SiteConst.pas:99 \r
+msgid "UserID not found"
+msgstr "UserID no se ha encontrado."
+
+#. Programmer's name for it: sInvalidPassword\r
+#: Internet/SiteConst.pas:100 \r
+msgid "Invalid password"
+msgstr "Contraseña no válida"
+
+#. Programmer's name for it: sMissingPassword\r
+#: Internet/SiteConst.pas:101 \r
+msgid "Missing password"
+msgstr ""
+
+#. Programmer's name for it: sUnknownUserName\r
+#: Internet/SiteConst.pas:102 \r
+msgid "Unknown user name"
+msgstr "Nombre de usuario desconocido"
+
+#. Programmer's name for it: sMissingUserName\r
+#: Internet/SiteConst.pas:103 \r
+msgid "Missing user name"
+msgstr ""
+
+#. Script errors\r
+#: Internet/SiteConst.pas:107 \r
+msgid "Cannot create script engine: %s.  Error: %x"
+msgstr ""
+
+#. 4 - source line text\r
+#: Internet/SiteConst.pas:144 \r
+msgid ""
+"<table width=\"95%%\" border=\"1\" cellspacing=\"0\" bordercolor=\"#C0C0C0"
+"\">\n"
+"<tr>\n"
+"<td colspan=2>\n"
+"<font color=\"#727272\"><b>Error[%0:d]:</b> \n"
+"%1:s\n"
+"</font>\n"
+"</td>\n"
+"</tr>\n"
+"<tr>\n"
+"<td>\n"
+"<font color=\"#727272\"><b>Line:</b> \n"
+"%2:d\n"
+"</font>\n"
+"</td>\n"
+"<td>\n"
+"<font color=\"#727272\"><b>Position:</b> \n"
+"%3:d\n"
+"</font>\n"
+"</td>\n"
+"</tr>\n"
+"</table>\n"
+msgstr ""
+
+#. Programmer's name for it: sMaximumSessionsExceeded\r
+#: Internet/SiteConst.pas:146 \r
+msgid "Maximum sessions exceeded"
+msgstr ""
+
+#. Programmer's name for it: sVariableNotFound\r
+#: Internet/SiteConst.pas:147 \r
+msgid "Variable not found: %s"
+msgstr "No se ha encontrado la variable: %s"
+
+#. Programmer's name for it: sComponentDoesNotSupportScripting\r
+#: Internet/SiteConst.pas:148 \r
+msgid "Component does not support scripting. Class: %0:s, Name: %1:s"
+msgstr ""
+
+#. Programmer's name for it: sClassDoesNotSupportScripting\r
+#: Internet/SiteConst.pas:149 \r
+msgid "Object does not support scripting. Class: %0:s"
+msgstr ""
+
+#. Programmer's name for it: sWebAppDebugger\r
+#: Internet/SvrConst.pas:14 \r
+msgid "Web App Debugger"
+msgstr ""
+
+#. Programmer's name for it: sStopServer\r
+#: Internet/SvrConst.pas:15 \r
+msgid "Stop"
+msgstr ""
+
+#. Programmer's name for it: sStartServer\r
+#: Internet/SvrConst.pas:16 \r
+msgid "Start"
+msgstr ""
+
+#. Programmer's name for it: sCouldNotOpenRegKey\r
+#: Internet/SvrConst.pas:17 \r
+msgid "Unable to not open registry key: %s"
+msgstr "No se puede abrir la llave del registro: %s"
+
+#. Programmer's name for it: sUnauthorizedString\r
+#. Programmer's name for it: UnauthorizedString\r
+#: Internet/SvrConst.pas:23 \r Internet/SvrConst.pas:66
+msgid ""
+"<HTML><HEAD><TITLE>Unauthorized</TITLE></HEAD><BODY><H1>Unauthorized</"
+"H1>Proper authorization is required for this area. Either your browser does "
+"not perform authorization, or your authorization has failed.</BODY></HTML>\n"
+msgstr ""
+
+#. Programmer's name for it: sForbiddenString\r
+#. Programmer's name for it: ForbiddenString\r
+#: Internet/SvrConst.pas:24 \r Internet/SvrConst.pas:67
+msgid ""
+"<HTML><TITLE>The requested URL is forbidden</TITLE><BODY><H1>The requested "
+"URL is forbidden</H1><P>HTTP status code: 403</BODY></HTML>\n"
+msgstr ""
+
+#. Programmer's name for it: sNoDirBrowseString\r
+#. Programmer's name for it: NoDirBrowseString\r
+#: Internet/SvrConst.pas:25 \r Internet/SvrConst.pas:68
+msgid ""
+"<HTML><TITLE>Directory browsing is forbidden</TITLE><BODY><H1>The requested "
+"URL is forbidden</H1><P>HTTP status code: 403</BODY></HTML>\n"
+msgstr ""
+
+#. Programmer's name for it: sBadRequest\r
+#. Programmer's name for it: BadRequest\r
+#: Internet/SvrConst.pas:26 \r Internet/SvrConst.pas:69
+msgid ""
+"<HTML><TITLE>Invalid HTTP request: Method not allowed for HTTP/1.0</"
+"TITLE><BODY><H1>Invalid HTTP request: Method not allowed for HTTP/1.0</"
+"H1><P>HTTP status code: 400</BODY></HTML>\n"
+msgstr ""
+
+#. Programmer's name for it: sBadRequest\r
+#. Programmer's name for it: BadRequest\r
+#: Internet/SvrConst.pas:32 \r Internet/SvrConst.pas:75
+msgid ""
+"<TITLE>The requested URL was not found</TITLE><BODY><H1>The requested URL "
+"was not found</H1><P>HTTP status code: 404</BODY>"
+msgstr ""
+
+#. Programmer's name for it: sBadRequest\r
+#: Internet/SvrConst.pas:39 \r
+msgid ""
+"<TITLE>Internal Server Error</TITLE><BODY><H1>Internal Server Error</"
+"H1><P>HTTP status code: 500<P>HTTP error message: %s</BODY>"
+msgstr ""
+
+#. Programmer's name for it: sInvalidActionRegistration\r
+#: Internet/SvrConst.pas:41 \r Internet/WebConst.pas:22
+msgid "Invalid Action registration"
+msgstr ""
+
+#. Programmer's name for it: sErrorEvent\r
+#: Internet/SvrConst.pas:42 \r
+msgid "ERROR"
+msgstr ""
+
+#. Programmer's name for it: sResponseEvent\r
+#: Internet/SvrConst.pas:43 \r
+msgid "RESPONSE"
+msgstr ""
+
+#. Programmer's name for it: sEvent\r
+#: Internet/SvrConst.pas:44 \r
+msgid "Event"
+msgstr ""
+
+#. Programmer's name for it: sTime\r
+#. Programmer's name for it: STimeDescription\r
+#: Internet/SvrConst.pas:45 \r Rtl/Common/StdConvs.pas:452
+msgid "Time"
+msgstr "Hora"
+
+#. Programmer's name for it: sDate\r
+#: Internet/SvrConst.pas:46 \r
+msgid "Date"
+msgstr ""
+
+#. Programmer's name for it: sElapsed\r
+#: Internet/SvrConst.pas:47 \r
+msgid "Elapsed"
+msgstr ""
+
+#. Programmer's name for it: sPath\r
+#: Internet/SvrConst.pas:48 \r
+msgid "Path"
+msgstr ""
+
+#. Programmer's name for it: sCode\r
+#: Internet/SvrConst.pas:49 \r
+msgid "Code"
+msgstr ""
+
+#. Programmer's name for it: sContentLength\r
+#: Internet/SvrConst.pas:50 \r
+msgid "Content Length"
+msgstr ""
+
+#. Programmer's name for it: sContentType\r
+#: Internet/SvrConst.pas:51 \r
+msgid "Content Type"
+msgstr "Tipo de contenido"
+
+#. Programmer's name for it: sThread\r
+#: Internet/SvrConst.pas:52 \r
+msgid "Thread"
+msgstr "Thread (hilo)"
+
+#. Programmer's name for it: sNoDefaultURL\r
+#: Internet/SvrConst.pas:54 \r
+msgid "(none)"
+msgstr ""
+
+#. Programmer's name for it: sLogTab\r
+#: Internet/SvrConst.pas:55 \r
+msgid "Log(%d)"
+msgstr ""
+
+#. Programmer's name for it: sSend\r
+#: Internet/SvrConst.pas:57 \r
+msgid "Send"
+msgstr ""
+
+#. Programmer's name for it: sReceive\r
+#: Internet/SvrConst.pas:58 \r
+msgid "Receive"
+msgstr "Recibir"
+
+#. Programmer's name for it: sLogStrTemplate\r
+#: Internet/SvrConst.pas:59 \r
+msgid "%s %s Error: (%d)%s"
+msgstr ""
+
+#. Programmer's name for it: DateFormat\r
+#: Internet/SvrConst.pas:76 \r
+msgid "ddd, dd mmm yyyy hh:mm:ss"
+msgstr ""
+
+#. Programmer's name for it: sBuild\r
+#: Internet/SvrConst.pas:77 \r
+msgid "Build"
+msgstr ""
+
+#. Programmer's name for it: sDirHeader\r
+#: Internet/SvrConst.pas:79 \r
+msgid ""
+"<HTML><HEAD><TITLE>Directory of %s</TITLE></HEAD><BODY><H1>Directory of %0:"
+"s</H1>\n"
+msgstr ""
+
+#. Programmer's name for it: sDirParent\r
+#: Internet/SvrConst.pas:80 \r
+msgid ""
+"Up to <A HREF=\"%s\">%0:s</A>\n"
+"<UL>"
+msgstr ""
+
+#. Programmer's name for it: sDirRoot\r
+#: Internet/SvrConst.pas:81 \r
+msgid ""
+"Up to <A HREF=\"%s\">root directory</A>\n"
+"<UL>"
+msgstr ""
+
+#. Programmer's name for it: sDirEntry\r
+#: Internet/SvrConst.pas:82 \r
+msgid "<LI>[ <A HREF=\"%s\">%s</A> ]\n"
+msgstr "<LI>[ <A HREF=\"%s\">%s</A> ]\n"
+
+#. Programmer's name for it: sFileEntry\r
+#: Internet/SvrConst.pas:83 \r
+msgid "<LI><A HREF=\"%s\">%s</A> (%d bytes)\n"
+msgstr "<LI><A HREF=\"%s\">%s</A> (%d bytes)\n"
+
+#. Programmer's name for it: sListStart\r
+#: Internet/SvrConst.pas:84 \r
+msgid "<UL>\n"
+msgstr "<UL>\n"
+
+#. Programmer's name for it: sDirFooter\r
+#: Internet/SvrConst.pas:85 \r
+msgid "</UL></BODY></HTML>\n"
+msgstr "</UL></BODY></HTML>\n"
+
+#. Programmer's name for it: sFileStatus\r
+#: Internet/SvrInfoConst.pas:13 \r
+msgid "File Status:"
+msgstr ""
+
+#. Programmer's name for it: sFound\r
+#: Internet/SvrInfoConst.pas:14 \r
+msgid "Found"
+msgstr "Encontrado"
+
+#. Programmer's name for it: sNotFound\r
+#: Internet/SvrInfoConst.pas:15 \r
+msgid "Not found"
+msgstr "No encontrado"
+
+#. Programmer's name for it: sMissingClsID\r
+#: Internet/SvrInfoConst.pas:16 \r
+msgid "Missing ClassID"
+msgstr ""
+
+#. Programmer's name for it: sGo\r
+#: Internet/SvrInfoConst.pas:17 \r
+msgid "Go"
+msgstr "Ir"
+
+#. Programmer's name for it: sDataSetFieldBlank\r
+#: Internet/WbmConst.pas:15 \r
+msgid "Data set field is blank"
+msgstr ""
+
+#. Programmer's name for it: sDataSetFieldNotFound\r
+#: Internet/WbmConst.pas:16 \r
+msgid "Data set field not found: %s"
+msgstr "No se ha encontrado el campo del dataset: %s"
+
+#. Programmer's name for it: sNotDataSetField\r
+#: Internet/WbmConst.pas:17 \r
+msgid "Field is not a dataset field: %s"
+msgstr ""
+
+#. Programmer's name for it: ScriptTableName\r
+#: Internet/WbmConst.pas:18 \r
+msgid "%s_Table"
+msgstr ""
+
+#. Programmer's name for it: sNoXMLBroker\r
+#: Internet/WbmConst.pas:19 \r
+msgid "%s: missing XMLBroker"
+msgstr ""
+
+#. Programmer's name for it: sFieldNotFound\r
+#: Internet/WbmConst.pas:20 \r
+msgid "%0:s: Field \"%1:s\" not found"
+msgstr ""
+
+#. Programmer's name for it: sXMLBrokerNotDefined\r
+#: Internet/WbmConst.pas:21 \r
+msgid "%s.XMLBroker = nil"
+msgstr ""
+
+#. Programmer's name for it: sSubmitQuery\r
+#: Internet/WbmConst.pas:22 \r
+msgid "Submit"
+msgstr ""
+
+#. Programmer's name for it: sResetQuery\r
+#: Internet/WbmConst.pas:23 \r
+msgid "Reset"
+msgstr "Reinicializa"
+
+#. Programmer's name for it: sApplyUpdates\r
+#: Internet/WbmConst.pas:24 \r
+msgid "Apply Updates"
+msgstr ""
+
+#. Programmer's name for it: sFieldNameBlank\r
+#: Internet/WbmConst.pas:25 \r
+msgid "%s.FieldName = ''"
+msgstr ""
+
+#. Programmer's name for it: sXMLComponentNotDefined\r
+#: Internet/WbmConst.pas:26 \r
+msgid "%s.XMLComponent = nil"
+msgstr ""
+
+#. Programmer's name for it: ScriptNamesVar\r
+#: Internet/WbmConst.pas:27 \r
+msgid "%s_Names"
+msgstr ""
+
+#. Programmer's name for it: ScriptIDsVar\r
+#: Internet/WbmConst.pas:28 \r
+msgid "%s_IDs"
+msgstr ""
+
+#. Programmer's name for it: ScriptXMLDisplayName\r
+#: Internet/WbmConst.pas:29 \r
+msgid "%s_Disp"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParent\r
+#: Internet/WbmConst.pas:30 \r Internet/WebConst.pas:46
+msgid "Invalid parent"
+msgstr "Padre no válido"
+
+#. Programmer's name for it: sInvalidParentClass\r
+#: Internet/WbmConst.pas:31 \r
+msgid "Invalid parent class: %s"
+msgstr "Clase de padre no válido: %s"
+
+#. Programmer's name for it: sDuplicateStatusField\r
+#: Internet/WbmConst.pas:32 \r
+msgid "Field %s ignored, only one status field allowed"
+msgstr ""
+
+#. Programmer's name for it: sFirstButton\r
+#: Internet/WbmConst.pas:33 \r
+msgid "|<"
+msgstr ""
+
+#. Programmer's name for it: sLastButton\r
+#: Internet/WbmConst.pas:34 \r
+msgid ">|"
+msgstr ""
+
+#. Programmer's name for it: sPriorButton\r
+#: Internet/WbmConst.pas:35 \r
+msgid "<"
+msgstr ""
+
+#. Programmer's name for it: sNextButton\r
+#: Internet/WbmConst.pas:36 \r
+msgid ">"
+msgstr ""
+
+#. Programmer's name for it: sPriorPageButton\r
+#: Internet/WbmConst.pas:37 \r
+msgid "<<"
+msgstr ""
+
+#. Programmer's name for it: sNextPageButton\r
+#: Internet/WbmConst.pas:38 \r
+msgid ">>"
+msgstr ""
+
+#. Programmer's name for it: sDeleteButton\r
+#: Internet/WbmConst.pas:39 \r
+msgid " - "
+msgstr ""
+
+#. Programmer's name for it: sInsertButton\r
+#: Internet/WbmConst.pas:40 \r
+msgid " + "
+msgstr ""
+
+#. Programmer's name for it: sUndoButton\r
+#. Programmer's name for it: sUndoComponent\r
+#: Internet/WbmConst.pas:41 \r ToolsAPI/DesignEditors.pas:2767
+msgid "Undo"
+msgstr ""
+
+#. Programmer's name for it: sPostButton\r
+#: Internet/WbmConst.pas:42 \r
+msgid "Post"
+msgstr ""
+
+#. Programmer's name for it: sWarningsBody\r
+#: Internet/WbmConst.pas:47 \r
+msgid ""
+"<TABLE BORDER=1 CELLPADDING=4>\n"
+"<TR><TD><P ALIGN=CENTER>Design-time Warnings<P>\n"
+"%s\n"
+"</TD></TD>\n"
+"</TABLE>\n"
+msgstr ""
+
+#. Programmer's name for it: ScriptDocumentVarName\r
+#: Internet/WbmConst.pas:48 \r
+msgid "%s_Doc"
+msgstr ""
+
+#. Programmer's name for it: ScriptXMLVarName\r
+#: Internet/WbmConst.pas:49 \r
+msgid "%s_XML"
+msgstr ""
+
+#. Programmer's name for it: sInvalidWebComponentsCreation\r
+#: Internet/WbmConst.pas:50 \r
+msgid "Invalid Web component creation"
+msgstr ""
+
+#. Programmer's name for it: ScriptRowSetVarName\r
+#: Internet/WbmConst.pas:51 \r
+msgid "%s_RS"
+msgstr ""
+
+#. Programmer's name for it: sApplyUpdatesError\r
+#: Internet/WbmConst.pas:52 \r
+msgid "ApplyUpdates error.  Error count: %d."
+msgstr ""
+
+#. Programmer's name for it: sDeltaNotFound\r
+#: Internet/WbmConst.pas:53 \r
+msgid "Missing Delta Packet"
+msgstr ""
+
+#. Programmer's name for it: sXMLBrokerNotConnected\r
+#: Internet/WbmConst.pas:54 \r
+msgid "XMLBroker: %s is not connected"
+msgstr "XMLBroker: %s no está conectado."
+
+#. Programmer's name for it: sDataSetNotActive\r
+#: Internet/WbmConst.pas:55 \r
+msgid "DataSet: %s is not active"
+msgstr "Dataset: %s no está activo"
+
+#. Programmer's name for it: sMemKB\r
+#: Internet/WebAppDbgAbout.pas:35 \r
+msgid "#,###,###\" KB\""
+msgstr ""
+
+#. Programmer's name for it: sErrorDecodingURLText\r
+#: Internet/WebConst.pas:20 \r
+msgid "Error decoding URL style (%XX) encoded string at position %d"
+msgstr ""
+
+#. Programmer's name for it: sInvalidURLEncodedChar\r
+#: Internet/WebConst.pas:21 \r
+msgid "Invalid URL encoded character (%s) at position %d"
+msgstr ""
+
+#. Programmer's name for it: sDuplicateActionName\r
+#: Internet/WebConst.pas:23 \r
+msgid "Duplicate action name"
+msgstr "Nombre de acción duplicado"
+
+#. Programmer's name for it: sFactoryAlreadyRegistered\r
+#: Internet/WebConst.pas:24 \r
+msgid "Web Module Factory already registered"
+msgstr ""
+
+#. Programmer's name for it: sAppFactoryAlreadyRegistered\r
+#: Internet/WebConst.pas:25 \r
+msgid "Web App Module Factory already registered."
+msgstr ""
+
+#. Programmer's name for it: sOnlyOneDispatcher\r
+#: Internet/WebConst.pas:26 \r
+msgid "Only one WebDispatcher per form/data module"
+msgstr ""
+
+#. Programmer's name for it: sHTTPItemName\r
+#: Internet/WebConst.pas:27 \r
+msgid "Name"
+msgstr ""
+
+#. Programmer's name for it: sHTTPItemURI\r
+#: Internet/WebConst.pas:28 \r
+msgid "PathInfo"
+msgstr ""
+
+#. Programmer's name for it: sHTTPItemEnabled\r
+#: Internet/WebConst.pas:29 \r
+msgid "Enabled"
+msgstr ""
+
+#. Programmer's name for it: sHTTPItemProducer\r
+#: Internet/WebConst.pas:31 \r
+msgid "Producer"
+msgstr ""
+
+#. Programmer's name for it: sTooManyColumns\r
+#: Internet/WebConst.pas:35 \r
+msgid "Too many table columns"
+msgstr "Tabla con demasiadas columnas"
+
+#. Programmer's name for it: sFieldNameColumn\r
+#: Internet/WebConst.pas:36 \r
+msgid "Field Name"
+msgstr ""
+
+#. Programmer's name for it: sFieldTypeColumn\r
+#: Internet/WebConst.pas:37 \r
+msgid "Field Type"
+msgstr ""
+
+#. Programmer's name for it: sInvalidWebComponentsRegistration\r
+#: Internet/WebConst.pas:39 \r
+msgid "Invalid Web component registration"
+msgstr ""
+
+#. Programmer's name for it: sInvalidWebComponentsEnumeration\r
+#: Internet/WebConst.pas:40 \r
+msgid "Invalid Web component enumeration"
+msgstr ""
+
+#. Programmer's name for it: sVariableIsNotAContainer\r
+#: Internet/WebConst.pas:42 \r
+msgid "Variable %s is not a container"
+msgstr ""
+
+#. Programmer's name for it: sInternalApplicationError\r
+#: Internet/WebConst.pas:45 \r
+msgid ""
+"<h1>Internal Application Error</h1>\n"
+"<p>%0:s\n"
+"<p><hr width=\"100%%\"><i>%1:s</i>"
+msgstr ""
+
+#. Programmer's name for it: SWideStringOutOfBounds\r
+#: Internet/WSDLIntf.pas:126 \r
+msgid "WideString Index outof bounds"
+msgstr ""
+
+#. Programmer's name for it: sWebServiceListing\r
+#: Internet/WSDLPub.pas:80 \r
+msgid "WebService Listing"
+msgstr ""
+
+#. Programmer's name for it: sWebServiceListingAdmin\r
+#: Internet/WSDLPub.pas:81 \r
+msgid "WebService Listing Administrator"
+msgstr ""
+
+#. Programmer's name for it: sPortType\r
+#: Internet/WSDLPub.pas:82 \r
+msgid "Port Type"
+msgstr ""
+
+#. Programmer's name for it: sNameSpaceURI\r
+#: Internet/WSDLPub.pas:83 \r
+msgid "Namespace URI"
+msgstr ""
+
+#. Programmer's name for it: sDocumentation\r
+#: Internet/WSDLPub.pas:84 \r
+msgid "Documentation"
+msgstr ""
+
+#. Programmer's name for it: sWSDL\r
+#: Internet/WSDLPub.pas:85 \r
+msgid "WSDL"
+msgstr ""
+
+#. Programmer's name for it: sPortName\r
+#: Internet/WSDLPub.pas:86 \r
+msgid "PortName"
+msgstr ""
+
+#. Programmer's name for it: sAddress\r
+#: Internet/WSDLPub.pas:87 \r
+msgid "Address"
+msgstr "Dirección"
+
+#. Programmer's name for it: sInterfaceNotFound\r
+#: Internet/WSDLPub.pas:88 \r
+msgid "<HTML><P>Interface %s not found</P></HTML>"
+msgstr ""
+
+#. Programmer's name for it: sWSDLPortsforPortType\r
+#: Internet/WSDLPub.pas:89 \r
+msgid "WSDL Ports for PortType"
+msgstr ""
+
+#. Programmer's name for it: sWSDLFor\r
+#: Internet/WSDLPub.pas:90 \r
+msgid "WSDL for "
+msgstr ""
+
+#. Programmer's name for it: SPropertyAccessors\r
+#: Internet/XMLBindGen.pas:67 \r
+msgid "  { Property Accessors }"
+msgstr ""
+
+#. Programmer's name for it: SMethodsAndProps\r
+#: Internet/XMLBindGen.pas:68 \r
+msgid "  { Methods & Properties }"
+msgstr ""
+
+#. Programmer's name for it: SForwardDecl\r
+#: Internet/XMLBindGen.pas:69 \r
+msgid "Forward Decls"
+msgstr ""
+
+#. Programmer's name for it: SGlobalFunctions\r
+#: Internet/XMLBindGen.pas:70 \r
+msgid "Global Functions"
+msgstr ""
+
+#. Programmer's name for it: SDescription\r
+#: Internet/XMLDataToSchema.pas:46 \r
+msgid "XMLData to XML Schema Translator (.xml -> .xsd)"
+msgstr ""
+
+#. Programmer's name for it: SNotActive\r
+#: Internet/XMLDoc.pas:497 \r
+msgid "No active document"
+msgstr ""
+
+#. Programmer's name for it: SNodeNotFound\r
+#: Internet/XMLDoc.pas:498 \r
+msgid "Node \"%s\" not found"
+msgstr "No se ha encontrado el nodo \"%s\""
+
+#. Programmer's name for it: SMissingNode\r
+#: Internet/XMLDoc.pas:499 \r
+msgid "IDOMNode required"
+msgstr ""
+
+#. Programmer's name for it: SNoAttributes\r
+#: Internet/XMLDoc.pas:500 \r
+msgid "Attributes are not supported on this node type"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNodeType\r
+#: Internet/XMLDoc.pas:501 \r
+msgid "Invalid node type"
+msgstr "Tipo de nodo no válido"
+
+#. Programmer's name for it: SMismatchedRegItems\r
+#: Internet/XMLDoc.pas:502 \r
+msgid "Mismatched paramaters to RegisterChildNodes"
+msgstr ""
+
+#. Programmer's name for it: SNotSingleTextNode\r
+#: Internet/XMLDoc.pas:503 \r
+msgid "Element does not contain a single text node"
+msgstr ""
+
+#. Programmer's name for it: SNoDOMParseOptions\r
+#: Internet/XMLDoc.pas:504 \r
+msgid "DOM Implementation does not support IDOMParseOptions"
+msgstr ""
+
+#. Programmer's name for it: SNotOnHostedNode\r
+#: Internet/XMLDoc.pas:505 \r
+msgid "Invalid operation on a hosted node"
+msgstr ""
+
+#. Programmer's name for it: SMissingItemTag\r
+#: Internet/XMLDoc.pas:506 \r
+msgid "ItemTag property is not initialized"
+msgstr "La propiedad ItemTag no está inicializada"
+
+#. Programmer's name for it: SNodeReadOnly\r
+#: Internet/XMLDoc.pas:507 \r
+msgid "Node is readonly"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedEncoding\r
+#: Internet/XMLDoc.pas:508 \r
+msgid "Unsupported character encoding \"%s\", try using LoadFromFile"
+msgstr ""
+
+#. Programmer's name for it: SNoRefresh\r
+#: Internet/XMLDoc.pas:509 \r
+msgid "Refresh is only supported if the FileName or XML properties are set"
+msgstr ""
+
+#. Programmer's name for it: SMissingFileName\r
+#: Internet/XMLDoc.pas:510 \r
+msgid "FileName cannot be blank"
+msgstr ""
+
+#. Programmer's name for it: SLine\r
+#: Internet/XMLDoc.pas:511 \r
+msgid "Line"
+msgstr ""
+
+#. Programmer's name for it: SDuplicateRegistration\r
+#: Internet/xmldom.pas:554 \r
+msgid "\"%s\" DOMImplementation already registered"
+msgstr ""
+
+#. Programmer's name for it: SNoMatchingDOMVendor\r
+#: Internet/xmldom.pas:555 \r
+msgid "No matching DOM Vendor"
+msgstr ""
+
+#. Programmer's name for it: SNoDOMNodeEx\r
+#: Internet/xmldom.pas:556 \r
+msgid "Selected DOM Vendor does not support this property or method"
+msgstr ""
+
+#. Programmer's name for it: SDOMNotSupported\r
+#: Internet/xmldom.pas:557 \r
+msgid "Property or Method \"%s\" is not supported by DOM Vendor \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SDescription\r
+#: Internet/XMLSchema99.pas:70 \r
+msgid "1999 XML Schema Translator (.xsd <-> .xsd)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSchema\r
+#: Internet/XMLSchemaTags.pas:176 \r
+msgid "Invalid or unsupported XML Schema document"
+msgstr ""
+
+#. Programmer's name for it: SNoLocalTypeName\r
+#: Internet/XMLSchemaTags.pas:177 \r
+msgid "Local type declarations cannot have a name.  Element: %s"
+msgstr ""
+
+#. Programmer's name for it: SUnknownDataType\r
+#: Internet/XMLSchemaTags.pas:178 \r
+msgid "Unknown datatype \"%s\""
+msgstr "Tipo de dato desconocido \"%s\""
+
+#. Programmer's name for it: SInvalidValue\r
+#: Internet/XMLSchemaTags.pas:179 \r
+msgid "Invalid %s value: \"%s\""
+msgstr "Valor %s no válido: \"%s\""
+
+#. Programmer's name for it: SInvalidGroupDecl\r
+#: Internet/XMLSchemaTags.pas:180 \r
+msgid "Invalid group declaration in \"%s\""
+msgstr "Declaración de grupo no válido en \"%s\""
+
+#. Programmer's name for it: SMissingName\r
+#: Internet/XMLSchemaTags.pas:181 \r
+msgid "Missing Type name"
+msgstr "Nombre de tipo sin valor"
+
+#. Programmer's name for it: SInvalidDerivation\r
+#: Internet/XMLSchemaTags.pas:182 \r
+msgid "Invalid complex type derivation: %s"
+msgstr ""
+
+#. Programmer's name for it: SNoNameOnRef\r
+#: Internet/XMLSchemaTags.pas:183 \r
+msgid "Name not allowed on a ref item"
+msgstr ""
+
+#. Programmer's name for it: SNoGlobalRef\r
+#: Internet/XMLSchemaTags.pas:184 \r
+msgid "Global scheam items may not contain a ref"
+msgstr ""
+
+#. Programmer's name for it: SNoRefPropSet\r
+#: Internet/XMLSchemaTags.pas:185 \r
+msgid "%s cannot be set on a ref item"
+msgstr ""
+
+#. Programmer's name for it: SSetGroupRefProp\r
+#: Internet/XMLSchemaTags.pas:186 \r
+msgid "Set the GroupRef property for the cmGroupRef content model"
+msgstr ""
+
+#. Programmer's name for it: SNoContentModel\r
+#: Internet/XMLSchemaTags.pas:187 \r
+msgid "ContentModel not set"
+msgstr ""
+
+#. Programmer's name for it: SNoFacetsAllowed\r
+#: Internet/XMLSchemaTags.pas:188 \r
+msgid "Facets and Enumeration not allowed on this kind of datatype \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SNotBuiltInType\r
+#: Internet/XMLSchemaTags.pas:189 \r
+msgid "Invalid built-in type name \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SBuiltInType\r
+#: Internet/XMLSchemaTags.pas:190 \r
+msgid "Built-in Type"
+msgstr ""
+
+#. Programmer's name for it: SMissingSourceFile\r
+#: Internet/xmlutil.pas:47 \r
+msgid "XMLDataFile must be specified"
+msgstr ""
+
+#. Programmer's name for it: SMissingTransform\r
+#: Internet/xmlutil.pas:48 \r
+msgid "TransformationFile must be specified"
+msgstr ""
+
+#. Programmer's name for it: SOldVersion\r
+#: Internet/xmlutil.pas:49 \r
+msgid "Version of Transformation File not supported"
+msgstr ""
+
+#. Programmer's name for it: sFileSaveError\r
+#: Internet/xmlutil.pas:50 \r
+msgid "Error saving file"
+msgstr ""
+
+#. Programmer's name for it: sFileOpenError\r
+#: Internet/xmlutil.pas:51 \r
+msgid "Error opening file"
+msgstr ""
+
+#. Programmer's name for it: sXMLFileOpenError\r
+#: Internet/xmlutil.pas:52 \r
+msgid "Could not open file "
+msgstr "No se puede abrir el fichero"
+
+#. Programmer's name for it: sXMLLoadError\r
+#: Internet/xmlutil.pas:53 \r
+msgid "Error Loading XML"
+msgstr ""
+
+#. Programmer's name for it: sLinePosError\r
+#: Internet/xmlutil.pas:54 \r
+msgid "Error on line %d, position %d"
+msgstr ""
+
+#. Programmer's name for it: sReason\r
+#: Internet/xmlutil.pas:55 \r
+msgid "Reason: %s\n"
+msgstr "Motivo: %s\n"
+
+#. Programmer's name for it: sParseError\r
+#: Internet/xmlutil.pas:56 \r
+msgid "XML Parse Error:\n"
+msgstr ""
+
+#. Programmer's name for it: SIconViewEditor\r
+#: Property\r Editors/ClxIconEdit.pas:321 \r
+msgid "Items Editor..."
+msgstr "Editor de elementos..."
+
+#. Programmer's name for it: srSamples\r
+#: Samples/IBConst.pas:6 \r
+msgid "Samples"
+msgstr "Ejemplos"
+
+#. Programmer's name for it: SNoEventsRegistered\r
+#: Samples/IBConst.pas:7 \r
+msgid "You must register events before queueing them"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDBConnection\r
+#: Samples/IBConst.pas:8 \r
+msgid "Component is not connected to an open Database"
+msgstr "El componente no está conectado a una base de datos abierta"
+
+#. Programmer's name for it: SInvalidDatabase\r
+#: Samples/IBConst.pas:9 \r
+msgid "''%s'' is not connected to an InterBase database"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCancellation\r
+#: Samples/IBConst.pas:10 \r
+msgid "You cannot call CancelEvents from within an OnEventAlert handler"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEvent\r
+#: Samples/IBConst.pas:11 \r
+msgid "Invalid blank event added to EventAlerter events list"
+msgstr ""
+
+#. Programmer's name for it: SInvalidQueueing\r
+#: Samples/IBConst.pas:12 \r
+msgid "You cannot call QueueEvents from within an OnEventAlert handler"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRegistration\r
+#: Samples/IBConst.pas:13 \r
+msgid ""
+"You cannot Register or Unregister events from within an OnEventAlert handler"
+msgstr ""
+
+#. Programmer's name for it: SMaximumEvents\r
+#: Samples/IBConst.pas:13 \r
+msgid "You can only register 15 events per EventAlerter"
+msgstr ""
+
+#. Programmer's name for it: SInterbaseNotInstalled\r
+#: Samples/IBCtrls.pas:103 \r
+msgid "You must have Interbase installed to use this component"
+msgstr ""
+
+#. Programmer's name for it: SFailedQueEvents\r
+#: Samples/IBCtrls.pas:104 \r
+msgid "Failed to lookup isc_que_events"
+msgstr ""
+
+#. Programmer's name for it: SFailedInterprete\r
+#: Samples/IBCtrls.pas:105 \r
+msgid "Failed to lookup isc_interprete"
+msgstr ""
+
+#. Programmer's name for it: SFailedFree\r
+#: Samples/IBCtrls.pas:106 \r
+msgid "Failed to lookup isc_free"
+msgstr ""
+
+#. Programmer's name for it: SFailedEventBlock\r
+#: Samples/IBCtrls.pas:107 \r
+msgid "Failed to lookup isc_event_block"
+msgstr ""
+
+#. Programmer's name for it: SFailedEventCounts\r
+#: Samples/IBCtrls.pas:108 \r
+msgid "Failed to lookup isc_event_counts"
+msgstr ""
+
+#. Programmer's name for it: SFailedCancelEvents\r
+#: Samples/IBCtrls.pas:109 \r
+msgid "Failed to lookup isc_cancel_events"
+msgstr ""
+
+#. Programmer's name for it: SNoRTTI\r
+#: Soap/IntfInfo.pas:69 \r
+msgid "Interface %s has no RTTI"
+msgstr ""
+
+#. Programmer's name for it: SNoRTTIParam\r
+#: Soap/IntfInfo.pas:70 \r
+msgid "Parameter %s on Method %s of Interface %s has no RTTI"
+msgstr ""
+
+#. Programmer's name for it: SClassNotRegistered\r
+#: Soap/InvConst.pas:15 \r
+msgid "Class not registered"
+msgstr ""
+
+#. Programmer's name for it: SIntfNotRegistered\r
+#: Soap/InvConst.pas:16 \r
+msgid "Interface %s not registered"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedEncodingSyle\r
+#: Soap/SoapConst.pas:81 \r
+msgid "Unsupported SOAP encodingStyle %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSoapRequest\r
+#: Soap/SoapConst.pas:82 \r
+msgid "Invalid SOAP request"
+msgstr ""
+
+#. Programmer's name for it: SMultiBodyNotSupported\r
+#: Soap/SoapConst.pas:83 \r
+msgid "Multiple body elements not supported"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedCC\r
+#: Soap/SoapConst.pas:84 \r
+msgid "Unsupported calling convention: %s"
+msgstr "Convención de llamada no soportado: %s"
+
+#. Programmer's name for it: SUnsupportedCCIntfMeth\r
+#: Soap/SoapConst.pas:85 \r
+msgid ""
+"Remote Method Call: unsupported calling convention %s for method %s on "
+"interface %s"
+msgstr ""
+
+#. Programmer's name for it: SInvClassNotRegistered\r
+#: Soap/SoapConst.pas:86 \r
+msgid "No class registered to implement interface %s for soap action %s"
+msgstr ""
+
+#. Programmer's name for it: SInvInterfaceNotReg\r
+#: Soap/SoapConst.pas:87 \r
+msgid "No interface  registered for soap action %s"
+msgstr ""
+
+#. Programmer's name for it: SInvInterfaceNotRegURL\r
+#: Soap/SoapConst.pas:88 \r
+msgid "No interface  registered for URL %s"
+msgstr ""
+
+#. Programmer's name for it: SRemTypeNotRegistered\r
+#: Soap/SoapConst.pas:89 \r
+msgid "Remotable Type %s not registered"
+msgstr ""
+
+#. Programmer's name for it: STypeMismatchInParam\r
+#: Soap/SoapConst.pas:90 \r
+msgid "Type mismatch in parameter %s"
+msgstr ""
+
+#. Programmer's name for it: SNoSuchMethod\r
+#: Soap/SoapConst.pas:91 \r
+msgid "No such method %s"
+msgstr ""
+
+#. Programmer's name for it: SInterfaceNotReg\r
+#: Soap/SoapConst.pas:92 \r
+msgid "Interface not registered, UUID = %s"
+msgstr ""
+
+#. Programmer's name for it: SInterfaceNoRTTI\r
+#: Soap/SoapConst.pas:93 \r
+msgid "Interface has no RTTI, UUID = %s"
+msgstr ""
+
+#. Programmer's name for it: SNoWSDL\r
+#: Soap/SoapConst.pas:94 \r
+msgid "No WSDL document associated with WSDLView"
+msgstr ""
+
+#. Programmer's name for it: SDataTypeNotSupported\r
+#: Soap/SoapConst.pas:95 \r
+msgid ""
+"Datatype of TypeKind: %s not supported as argument for remote invocation"
+msgstr ""
+
+#. Programmer's name for it: SNoMatchingDelphiType\r
+#: Soap/SoapConst.pas:96 \r
+msgid ""
+"No matching Delphi type was found for type: URI = %s, Name = %s on Node %s"
+msgstr ""
+
+#. Programmer's name for it: SUnknownSOAPAction\r
+#: Soap/SoapConst.pas:97 \r
+msgid "Unknown SOAPAction %s"
+msgstr ""
+
+#. Programmer's name for it: SScalarFromTRemotableS\r
+#: Soap/SoapConst.pas:98 \r
+msgid ""
+"Classes that represent scalar types must decsend from TRemotable, %s does not"
+msgstr ""
+
+#. Programmer's name for it: SNoSerializeGraphs\r
+#: Soap/SoapConst.pas:99 \r
+msgid ""
+"Must allow multiref output for objects when serializing a graph of objects"
+msgstr ""
+
+#. Programmer's name for it: SUnsuportedClassType\r
+#: Soap/SoapConst.pas:100 \r
+msgid "Conversion from Class %s to SOAP is not supported"
+msgstr ""
+
+#. Programmer's name for it: SUnexpectedDataType\r
+#: Soap/SoapConst.pas:101 \r
+msgid "Internal error: data type kind %s not expected in this context"
+msgstr ""
+
+#. Programmer's name for it: SArrayTooManyElem\r
+#: Soap/SoapConst.pas:104 \r
+msgid "Array Node: %s has too many elements"
+msgstr ""
+
+#. Programmer's name for it: SWrongDocElem\r
+#: Soap/SoapConst.pas:105 \r
+msgid "DocumentElement %s:%s expected, %s:%s found"
+msgstr ""
+
+#. Programmer's name for it: STooManyParameters\r
+#: Soap/SoapConst.pas:106 \r
+msgid "Too many parameters in method %s"
+msgstr ""
+
+#. Programmer's name for it: SArrayExpected\r
+#: Soap/SoapConst.pas:107 \r
+msgid "Array type expected. Node %s"
+msgstr ""
+
+#. Programmer's name for it: SNoMultiDimVar\r
+#: Soap/SoapConst.pas:108 \r
+msgid "Multidimensional variant arrays not supported in this release"
+msgstr ""
+
+#. Programmer's name for it: SNoURL\r
+#: Soap/SoapConst.pas:109 \r
+msgid "No URL set"
+msgstr ""
+
+#. Programmer's name for it: SNoInterfaceGUID\r
+#: Soap/SoapConst.pas:111 \r
+msgid "Class %s does not implement interface GUID %s"
+msgstr ""
+
+#. Programmer's name for it: SNoArrayElemRTTI\r
+#: Soap/SoapConst.pas:112 \r
+msgid "Element of Array type %s has no RTTI"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResponse\r
+#: Soap/SoapConst.pas:113 \r
+msgid "Invalid SOAP Response"
+msgstr ""
+
+#. Programmer's name for it: SInvalidArraySpec\r
+#: Soap/SoapConst.pas:114 \r
+msgid "Invalid SOAP array specification"
+msgstr ""
+
+#. Programmer's name for it: SCannotFindNodeID\r
+#: Soap/SoapConst.pas:115 \r
+msgid "Cannot find node referenced by ID %s"
+msgstr ""
+
+#. Programmer's name for it: SNoNativeNULL\r
+#: Soap/SoapConst.pas:116 \r
+msgid "Option not set to allow Native type to be set to NULL"
+msgstr ""
+
+#. Programmer's name for it: SFaultCodeOnlyAllowed\r
+#: Soap/SoapConst.pas:117 \r
+msgid "Only one FaultCode element allowed"
+msgstr ""
+
+#. Programmer's name for it: SFaultStringOnlyAllowed\r
+#: Soap/SoapConst.pas:118 \r
+msgid "Only one FaultString element allowed"
+msgstr ""
+
+#. Programmer's name for it: SMissingFaultValue\r
+#: Soap/SoapConst.pas:119 \r
+msgid "Missing FaultString or FaultCode element"
+msgstr ""
+
+#. Programmer's name for it: SNoInterfacesInClass\r
+#: Soap/SoapConst.pas:120 \r
+msgid "Invokable Class %s implements no interfaces"
+msgstr ""
+
+#. Programmer's name for it: SVariantCastNotSupported\r
+#: Soap/SoapConst.pas:122 \r
+msgid "Type cannot be cast as Variant"
+msgstr ""
+
+#. Programmer's name for it: SVarDateNotSupported\r
+#: Soap/SoapConst.pas:123 \r
+msgid "varDate type not supported"
+msgstr "Tipo varDate no soportado"
+
+#. Programmer's name for it: SVarDispatchNotSupported\r
+#. Programmer's name for it: SNoVarDispatch\r
+#: Soap/SoapConst.pas:124 \r Soap/SoapConst.pas:142
+msgid "varDispatch type not supported"
+msgstr "Tipo varDispatch no soportado"
+
+#. Programmer's name for it: SVarErrorNotSupported\r
+#. Programmer's name for it: SNoErrorDispatch\r
+#: Soap/SoapConst.pas:125 \r Soap/SoapConst.pas:143
+msgid "varError type not supported"
+msgstr "Tipo varError no soportado"
+
+#. Programmer's name for it: SVarVariantNotSupported\r
+#: Soap/SoapConst.pas:126 \r
+msgid "varVariant type not supported"
+msgstr "Tipo varVariant no soportado"
+
+#. Programmer's name for it: SHeaderError\r
+#: Soap/SoapConst.pas:127 \r
+msgid "Error Processing Header %s"
+msgstr ""
+
+#. Programmer's name for it: SMissingSoapReturn\r
+#: Soap/SoapConst.pas:128 \r
+msgid "SOAP Response Packet: result element expected, %s found"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointer\r
+#: Soap/SoapConst.pas:129 \r
+msgid "Invalid Pointer"
+msgstr "Puntero no válido"
+
+#. Programmer's name for it: SNoMessageConverter\r
+#: Soap/SoapConst.pas:130 \r
+msgid "No Pascal to Message converter set"
+msgstr ""
+
+#. Programmer's name for it: SNoMsgProcessingNode\r
+#: Soap/SoapConst.pas:131 \r
+msgid "No Message processing node set"
+msgstr ""
+
+#. Programmer's name for it: SHeaderAttributeError\r
+#: Soap/SoapConst.pas:132 \r
+msgid "Soap header attribute %s with must understand true not understand"
+msgstr ""
+
+#. Programmer's name for it: SNoServiceForURL\r
+#: Soap/SoapConst.pas:134 \r
+msgid "No service available for URL %s"
+msgstr "Servicio no disponible para la URL %s"
+
+#. Programmer's name for it: SNoInterfaceForURL\r
+#: Soap/SoapConst.pas:135 \r
+msgid "No interface is registered to handle URL %s"
+msgstr ""
+
+#. Programmer's name for it: SNoClassRegisteredForURL\r
+#: Soap/SoapConst.pas:136 \r
+msgid "No Class is regisgtered to implement interface %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidURL\r
+#: Soap/SoapConst.pas:137 \r
+msgid "Invalid url"
+msgstr "URL no válida"
+
+#. Programmer's name for it: SNoClassRegistered\r
+#: Soap/SoapConst.pas:138 \r
+msgid "No class registered for invokable interface %s"
+msgstr ""
+
+#. Programmer's name for it: SNoDispatcher\r
+#: Soap/SoapConst.pas:139 \r
+msgid "No Dispatcher set"
+msgstr ""
+
+#. Programmer's name for it: SMethNoRTTI\r
+#: Soap/SoapConst.pas:140 \r
+msgid "Method has no RTTI"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedVariant\r
+#: Soap/SoapConst.pas:141 \r
+msgid "Unsuppported variant type"
+msgstr "Tipo de variant no soportada"
+
+#. Programmer's name for it: SInvalidTimeZone\r
+#: Soap/SoapConst.pas:145 \r
+msgid "Invalid or Unknown Time Zone"
+msgstr ""
+
+#. Programmer's name for it: SLocationFilter\r
+#: Soap/SoapConst.pas:146 \r
+msgid "WSDL files (*.wsdl)|*.wsdl|XML files (*.xml)|*.xml"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHour\r
+#: Soap/XSBuiltIns.pas:35 \r
+msgid "Invalid hour: %d"
+msgstr "Hora no válida: %d"
+
+#. Programmer's name for it: SInvalidMinute\r
+#: Soap/XSBuiltIns.pas:36 \r
+msgid "Invalid minute: %d"
+msgstr "Minutos no válidos: %d"
+
+#. Programmer's name for it: SInvalidSecond\r
+#: Soap/XSBuiltIns.pas:37 \r
+msgid "Invalid second: %d"
+msgstr "Segundos no válidos: %d"
+
+#. Programmer's name for it: SInvalidFractionSecond\r
+#: Soap/XSBuiltIns.pas:38 \r
+msgid "Invalid second: %f"
+msgstr "Segundos no válidos: %f"
+
+#. Programmer's name for it: SInvalidMillisecond\r
+#: Soap/XSBuiltIns.pas:39 \r
+msgid "Invalid millisecond: %d"
+msgstr "Milisegundos no válidos: %d"
+
+#. Programmer's name for it: SInvalidHourOffset\r
+#: Soap/XSBuiltIns.pas:40 \r
+msgid "Invalid hour offset: %d"
+msgstr "Offset de la hora no válido: %d"
+
+#. Programmer's name for it: SInvalidDay\r
+#: Soap/XSBuiltIns.pas:41 \r
+msgid "Invalid day: %d"
+msgstr "Día no válido: %d"
+
+#. Programmer's name for it: SInvalidMonth\r
+#: Soap/XSBuiltIns.pas:42 \r
+msgid "Invalid month: %d"
+msgstr "Mes no válido: %d"
+
+#. Programmer's name for it: SInvalidDuration\r
+#: Soap/XSBuiltIns.pas:43 \r
+msgid "Invalid Duration String: %s"
+msgstr "Cadena de duración no válido: %s"
+
+#. Programmer's name for it: sHTMLFilter\r
+#: ToolsAPI/ClxEditors.pas:629 \r
+msgid "html files (*.htm *.html)"
+msgstr ""
+
+#. Programmer's name for it: srLine\r
+#: ToolsAPI/DesignConst.pas:14 \r
+msgid "line"
+msgstr ""
+
+#. Programmer's name for it: srLines\r
+#: ToolsAPI/DesignConst.pas:15 \r
+msgid "lines"
+msgstr ""
+
+#. Programmer's name for it: SInvalidFormat\r
+#: ToolsAPI/DesignConst.pas:17 \r
+msgid "Invalid graphic format"
+msgstr "Formato gráfico no válido"
+
+#. Programmer's name for it: SUnableToFindComponent\r
+#: ToolsAPI/DesignConst.pas:19 \r
+msgid "Unable to locate form/component, '%s'"
+msgstr "No se puede localizar el form/componente, '%s'"
+
+#. Programmer's name for it: SCantFindProperty\r
+#: ToolsAPI/DesignConst.pas:20 \r
+msgid "Unable to locate property '%s' on component '%s'"
+msgstr ""
+
+#. Programmer's name for it: SStringsPropertyInvalid\r
+#: ToolsAPI/DesignConst.pas:21 \r
+msgid "Property '%s' has not been initialized on component '%s'"
+msgstr ""
+
+#. Programmer's name for it: SLoadPictureTitle\r
+#: ToolsAPI/DesignConst.pas:23 \r
+msgid "Load Picture"
+msgstr "Cargar Imagen"
+
+#. Programmer's name for it: SSavePictureTitle\r
+#: ToolsAPI/DesignConst.pas:24 \r
+msgid "Save Picture As"
+msgstr "Grabar Imagen Como"
+
+#. Programmer's name for it: SAboutVerb\r
+#: ToolsAPI/DesignConst.pas:26 \r
+msgid "About..."
+msgstr "Acerca de..."
+
+#. Programmer's name for it: SNoPropertyPageAvailable\r
+#: ToolsAPI/DesignConst.pas:27 \r
+msgid "No property pages are available for this control"
+msgstr ""
+
+#. Programmer's name for it: SNoAboutBoxAvailable\r
+#: ToolsAPI/DesignConst.pas:28 \r
+msgid "An About Box is not available for this control"
+msgstr ""
+
+#. Programmer's name for it: SNull\r
+#: ToolsAPI/DesignConst.pas:29 \r
+msgid "(Null)"
+msgstr "(Null)"
+
+#. Programmer's name for it: SUnassigned\r
+#: ToolsAPI/DesignConst.pas:30 \r
+msgid "(Unassigned)"
+msgstr "(Sin asignación)"
+
+#. Programmer's name for it: SString\r
+#: ToolsAPI/DesignConst.pas:32 \r
+msgid "String"
+msgstr "String"
+
+#. Programmer's name for it: SUnknownType\r
+#: ToolsAPI/DesignConst.pas:34 \r
+msgid "Unknown Type"
+msgstr "Tipo desconocido"
+
+#. Programmer's name for it: SCannotCreateName\r
+#: ToolsAPI/DesignConst.pas:36 \r
+msgid "Cannot create a method for an unnamed component"
+msgstr ""
+
+#. Programmer's name for it: SColEditCaption\r
+#: ToolsAPI/DesignConst.pas:38 \r
+msgid "Editing %s%s%s"
+msgstr ""
+
+#. Programmer's name for it: SCantDeleteAncestor\r
+#: ToolsAPI/DesignConst.pas:40 \r
+msgid ""
+"Selection contains a component introduced in an ancestor form which cannot "
+"be deleted"
+msgstr ""
+
+#. Programmer's name for it: SCantAddToFrame\r
+#: ToolsAPI/DesignConst.pas:41 \r
+msgid "New components cannot be added to frame instances."
+msgstr ""
+
+#. Programmer's name for it: SAllFiles\r
+#: ToolsAPI/DesignConst.pas:44 \r
+msgid "all files (*)"
+msgstr ""
+
+#. Programmer's name for it: SAllFiles\r
+#: ToolsAPI/DesignConst.pas:47 \r
+msgid "all files (*.*)"
+msgstr ""
+
+#. Programmer's name for it: sClassNotApplicable\r
+#: ToolsAPI/DesignEditors.pas:491 \r
+msgid "Class %s is not applicable to this module"
+msgstr ""
+
+#. Programmer's name for it: sNotAvailable\r
+#: ToolsAPI/DesignEditors.pas:492 \r
+msgid "(Not available)"
+msgstr "(No disponible)"
+
+#. Programmer's name for it: sEditSubmenu\r
+#. LogDetailFrame..ActionList1..EditCut1..Category\r
+#. LogDetailFrame..ActionList1..EditCopy1..Category\r
+#. LogDetailFrame..ActionList1..EditPaste1..Category\r
+#. LogDetailFrame..ActionList1..EditSelectAll1..Category\r
+#. LogDetailFrame..ActionList1..EditUndo1..Category\r
+#. StandardActions..ActionList1..EditCut1..Category\r
+#. StandardActions..ActionList1..EditCopy1..Category\r
+#. StandardActions..ActionList1..EditPaste1..Category\r
+#. StandardActions..ActionList1..EditDelete1..Category\r
+#. StandardActions..ActionList1..EditSelectAll1..Category\r
+#. StandardActions..ActionList1..EditUndo1..Category\r
+#: ToolsAPI/DesignEditors.pas:2766 \r Internet/SvrLogDetailFrame.dfm:62
+#: Internet/SvrLogDetailFrame.dfm:69 Internet/SvrLogDetailFrame.dfm:76
+#: Internet/SvrLogDetailFrame.dfm:83 Internet/SvrLogDetailFrame.dfm:89
+#: Vcl/ActnRes.dfm:12 Vcl/ActnRes.dfm:19 Vcl/ActnRes.dfm:26 Vcl/ActnRes.dfm:65
+#: Vcl/ActnRes.dfm:72 Vcl/ActnRes.dfm:78
+msgid "Edit"
+msgstr ""
+
+#. Programmer's name for it: sCutComponent\r
+#: ToolsAPI/DesignEditors.pas:2768 \r
+msgid "Cut"
+msgstr ""
+
+#. Programmer's name for it: sCopyComponent\r
+#: ToolsAPI/DesignEditors.pas:2769 \r
+msgid "Copy"
+msgstr ""
+
+#. Programmer's name for it: sPasteComponent\r
+#: ToolsAPI/DesignEditors.pas:2770 \r
+msgid "Paste"
+msgstr ""
+
+#. Programmer's name for it: sDeleteComponent\r
+#. ClxTreeViewItems..gbSubItems..btnDelSub..Caption\r
+#: ToolsAPI/DesignEditors.pas:2771 \r Property\r Editors/ClxNodeEdit.xfm:226
+msgid "Delete"
+msgstr ""
+
+#. Programmer's name for it: sSelectAllComponent\r
+#. StandardActions..ActionList1..ListControlSelectAll1..Hint\r
+#: ToolsAPI/DesignEditors.pas:2772 \r Vcl/ActnRes.dfm:277
+msgid "Select All"
+msgstr ""
+
+#. Programmer's name for it: sControlSubmenu\r
+#: ToolsAPI/DesignEditors.pas:2773 \r
+msgid "Control"
+msgstr "Control"
+
+#. Programmer's name for it: sToFrontControl\r
+#: ToolsAPI/DesignEditors.pas:2774 \r
+msgid "Bring to Front"
+msgstr ""
+
+#. Programmer's name for it: sToBackControl\r
+#: ToolsAPI/DesignEditors.pas:2775 \r
+msgid "Send to Back"
+msgstr ""
+
+#. Programmer's name for it: sDataCategoryName\r
+#: ToolsAPI/DesignIntf.pas:429 \r
+msgid "Data"
+msgstr ""
+
+#. Programmer's name for it: sDatabaseCategoryName\r
+#: ToolsAPI/DesignIntf.pas:430 \r
+msgid "Database"
+msgstr "Base de datos"
+
+#. Programmer's name for it: sDragNDropCategoryName\r
+#: ToolsAPI/DesignIntf.pas:432 \r
+msgid "Drag, Drop and Docking"
+msgstr ""
+
+#. Programmer's name for it: sDragNDropCategoryName\r
+#: ToolsAPI/DesignIntf.pas:435 \r
+msgid "Drag and Drop"
+msgstr ""
+
+#. Programmer's name for it: sHelpCategoryName\r
+#: ToolsAPI/DesignIntf.pas:437 \r
+msgid "Help and Hints"
+msgstr ""
+
+#. Programmer's name for it: sLayoutCategoryName\r
+#: ToolsAPI/DesignIntf.pas:438 \r
+msgid "Layout"
+msgstr ""
+
+#. Programmer's name for it: sLegacyCategoryName\r
+#: ToolsAPI/DesignIntf.pas:439 \r
+msgid "Legacy"
+msgstr ""
+
+#. Programmer's name for it: sLinkageCategoryName\r
+#: ToolsAPI/DesignIntf.pas:440 \r
+msgid "Linkage"
+msgstr ""
+
+#. Programmer's name for it: sLocaleCategoryName\r
+#: ToolsAPI/DesignIntf.pas:441 \r
+msgid "Locale"
+msgstr ""
+
+#. Programmer's name for it: sLocalizableCategoryName\r
+#: ToolsAPI/DesignIntf.pas:442 \r
+msgid "Localizable"
+msgstr ""
+
+#. Programmer's name for it: sMiscellaneousCategoryName\r
+#: ToolsAPI/DesignIntf.pas:443 \r
+msgid "Miscellaneous"
+msgstr ""
+
+#. Programmer's name for it: sVisualCategoryName\r
+#: ToolsAPI/DesignIntf.pas:444 \r
+msgid "Visual"
+msgstr "Visual"
+
+#. Programmer's name for it: sInputCategoryName\r
+#: ToolsAPI/DesignIntf.pas:445 \r
+msgid "Input"
+msgstr ""
+
+#. Programmer's name for it: sAddCaption\r
+#: ToolsAPI/TreeIntf.pas:2456 \r
+msgid "Add item"
+msgstr ""
+
+#. Programmer's name for it: SUnnamedItemCaption\r
+#: ToolsAPI/TreeIntf.pas:2651 \r
+msgid "<Components[%d]>"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEnumValue\r
+#: Vcl/ADOConst.pas:15 \r Vcl/Consts.pas:104
+msgid "Invalid Enum Value"
+msgstr "Valor de Enum no válido"
+
+#. Programmer's name for it: SMissingConnection\r
+#: Vcl/ADOConst.pas:16 \r
+msgid "Missing Connection or ConnectionString"
+msgstr "Falta Connection o ConnectionString"
+
+#. Programmer's name for it: SNoDetailFilter\r
+#: Vcl/ADOConst.pas:17 \r
+msgid "Filter property cannot be used for detail tables"
+msgstr "La propiedad Filter no puede ser utilizada para tablas de detalle"
+
+#. Programmer's name for it: SBookmarksRequired\r
+#: Vcl/ADOConst.pas:18 \r
+msgid ""
+"Dataset does not support bookmarks, which are required for multi-record data "
+"controls"
+msgstr ""
+"El Dataset no soporta separadores, los cuales son requeridos para controles "
+"de datos multiregistros"
+
+#. Programmer's name for it: SMissingCommandText\r
+#: Vcl/ADOConst.pas:19 \r
+msgid "Missing %s property"
+msgstr "No se encuentra la propiedad %s"
+
+#. Programmer's name for it: SNoResultSet\r
+#: Vcl/ADOConst.pas:20 \r
+msgid "CommandText does not return a result set"
+msgstr "CommandText no devuelve un conjunto de resultados"
+
+#. Programmer's name for it: SADOCreateError\r
+#: Vcl/ADOConst.pas:21 \r
+msgid ""
+"Error creating object.  Please verify that the Microsoft Data Access "
+"Components 2.1 (or later) have been properly installed"
+msgstr ""
+
+#. Programmer's name for it: SEventsNotSupported\r
+#: Vcl/ADOConst.pas:22 \r
+msgid "Events are not supported with server side TableDirect cursors"
+msgstr "Los eventos por parte del servidor no soportan cursores TableDirect"
+
+#. Programmer's name for it: SUsupportedFieldType\r
+#: Vcl/ADOConst.pas:23 \r
+msgid "Unsupported field type (%s) in field %s"
+msgstr "Tipo de campo no soportado (%s) en el campo %s"
+
+#. Programmer's name for it: SNoMatchingADOType\r
+#: Vcl/ADOConst.pas:24 \r
+msgid "No matching ADO data type for %s"
+msgstr "Tipo ADO no coincidente para %s"
+
+#. Programmer's name for it: SConnectionRequired\r
+#: Vcl/ADOConst.pas:25 \r
+msgid "A connection component is required for async ExecuteOptions"
+msgstr "Se requiere un componente de conexión para async ExecuteOptions"
+
+#. Programmer's name for it: SCantRequery\r
+#: Vcl/ADOConst.pas:26 \r
+msgid "Cannot perform a requery after connection has changed"
+msgstr ""
+"No se puede realizar una repetición de búsqueda una vez que la conexión ha "
+"cambiado"
+
+#. Programmer's name for it: SNoFilterOptions\r
+#: Vcl/ADOConst.pas:27 \r
+msgid "FilterOptions are not supported"
+msgstr "FilterOptions no estan soportadas"
+
+#. Programmer's name for it: SRecordsetNotOpen\r
+#: Vcl/ADOConst.pas:28 \r
+msgid "Recordset is not open"
+msgstr "Recordset no está abierto"
+
+#. Programmer's name for it: SAutoSessionExclusive\r
+#: Vcl/bdeconst.pas:15 \r
+msgid ""
+"Cannot enable AutoSessionName property with more than one session on a form "
+"or data-module"
+msgstr ""
+"No se puede activar la propiedad AutoSessionName con más de una sesión en un "
+"formulario o módulo de datos"
+
+#. Programmer's name for it: SAutoSessionExists\r
+#: Vcl/bdeconst.pas:16 \r
+msgid ""
+"Cannot add a session to the form or data-module while session '%s' has "
+"AutoSessionName enabled"
+msgstr ""
+"No se puede añadir una sesión al formulario o módulo de datos mientras la "
+"sesión '%s' tiene la propiedad AutoSessionName activada"
+
+#. Programmer's name for it: SAutoSessionActive\r
+#: Vcl/bdeconst.pas:17 \r
+msgid "Cannot modify SessionName while AutoSessionName is enabled"
+msgstr ""
+"No se puede modificar SessionName mientras la propiedad AutoSessionName está "
+"activada"
+
+#. Programmer's name for it: SDuplicateDatabaseName\r
+#: Vcl/bdeconst.pas:18 \r
+msgid "Duplicate database name '%s'"
+msgstr "Duplicado el nombre de base de datos: '%s'"
+
+#. Programmer's name for it: SDuplicateSessionName\r
+#: Vcl/bdeconst.pas:19 \r
+msgid "Duplicate session name '%s'"
+msgstr "Duplicado el nombre de sesión: '%s'"
+
+#. Programmer's name for it: SInvalidSessionName\r
+#: Vcl/bdeconst.pas:20 \r
+msgid "Invalid session name %s"
+msgstr "Nombre de sesión no válido: %s"
+
+#. Programmer's name for it: SDatabaseNameMissing\r
+#: Vcl/bdeconst.pas:21 \r
+msgid "Database name missing"
+msgstr "Nombre de la base de datos ausente"
+
+#. Programmer's name for it: SSessionNameMissing\r
+#: Vcl/bdeconst.pas:22 \r
+msgid "Session name missing"
+msgstr "Nombre de sesión ausente"
+
+#. Programmer's name for it: SDatabaseOpen\r
+#: Vcl/bdeconst.pas:23 \r
+msgid "Cannot perform this operation on an open database"
+msgstr "No se puede ejecutar esta operación en una base de datos abierta"
+
+#. Programmer's name for it: SDatabaseClosed\r
+#: Vcl/bdeconst.pas:24 \r
+msgid "Cannot perform this operation on a closed database"
+msgstr "No se puede ejecutar esta operación en una base de datos cerrada"
+
+#. Programmer's name for it: SDatabaseHandleSet\r
+#: Vcl/bdeconst.pas:25 \r
+msgid "Database handle owned by a different session"
+msgstr ""
+"El manejador (handle) de la base de datos está siendo utilizado por una "
+"sesión diferente"
+
+#. Programmer's name for it: SSessionActive\r
+#: Vcl/bdeconst.pas:26 \r
+msgid "Cannot perform this operation on an active session"
+msgstr "No se puede ejecutar esta operación sobre una sesión activa"
+
+#. Programmer's name for it: SHandleError\r
+#: Vcl/bdeconst.pas:27 \r
+msgid "Error creating cursor handle"
+msgstr "Se ha producido un error al crear el manejador (handle) del cursor"
+
+#. Programmer's name for it: SInvalidFloatField\r
+#: Vcl/bdeconst.pas:28 \r
+msgid "Cannot convert field '%s' to a floating point value"
+msgstr "No se puede convertir el campo '%s' en un valor de punto flotante"
+
+#. Programmer's name for it: SInvalidIntegerField\r
+#: Vcl/bdeconst.pas:29 \r
+msgid "Cannot convert field '%s' to an integer value"
+msgstr "No se puede convertir el campo '%s' en un valor entero"
+
+#. Programmer's name for it: STableMismatch\r
+#: Vcl/bdeconst.pas:30 \r
+msgid "Source and destination tables are incompatible"
+msgstr "Las tablas fuente y destino son incompatibles"
+
+#. Programmer's name for it: SFieldAssignError\r
+#: Vcl/bdeconst.pas:31 \r
+msgid "Fields '%s' and '%s' are not assignment compatible"
+msgstr "Los campos '%s' y '%s' no son de asignación compatible"
+
+#. Programmer's name for it: SNoReferenceTableName\r
+#: Vcl/bdeconst.pas:32 \r
+msgid "ReferenceTableName not specified for field '%s'"
+msgstr "ReferenceTableName no ha sido especificado para el campo '%s'"
+
+#. Programmer's name for it: SCompositeIndexError\r
+#: Vcl/bdeconst.pas:33 \r
+msgid "Cannot use array of Field values with Expression Indices"
+msgstr "No se puede usar la matriz de valores Campo con Expression Indices"
+
+#. Programmer's name for it: SInvalidBatchMove\r
+#: Vcl/bdeconst.pas:34 \r
+msgid "Invalid batch move parameters"
+msgstr "Parámetros de TBatchMove no válidos"
+
+#. Programmer's name for it: SEmptySQLStatement\r
+#: Vcl/bdeconst.pas:35 \r Vcl/SqlConst.pas:63
+msgid "No SQL statement available"
+msgstr "No hay sentencia SQL disponible"
+
+#. Programmer's name for it: SNoParameterValue\r
+#: Vcl/bdeconst.pas:36 \r Vcl/SqlConst.pas:64
+msgid "No value for parameter '%s'"
+msgstr "No hay valor para el parámetro '%s'"
+
+#. Programmer's name for it: SNoParameterType\r
+#: Vcl/bdeconst.pas:37 \r Vcl/SqlConst.pas:65
+msgid "No parameter type for parameter '%s'"
+msgstr "No hay tipo de parámetro para el parámetro '%s'"
+
+#. Programmer's name for it: SLoginError\r
+#: Vcl/bdeconst.pas:38 \r Vcl/SqlConst.pas:56
+msgid "Cannot connect to database '%s'"
+msgstr "No se puede conectar con la base de datos '%s'"
+
+#. Programmer's name for it: SInitError\r
+#: Vcl/bdeconst.pas:39 \r
+msgid ""
+"An error occurred while attempting to initialize the Borland Database Engine "
+"(error $%.4x)"
+msgstr ""
+"Ha ocurrido un error mientras se intentaba inicializar el Motor de la Base "
+"de Datos (error $%.4x)"
+
+#. Programmer's name for it: SDatabaseEditor\r
+#. Programmer's name for it: SIBDatabaseEditor\r
+#: Vcl/bdeconst.pas:40 \r Vcl/IBXConst.pas:40
+msgid "Da&tabase Editor..."
+msgstr "Editor de Base de Da&tos..."
+
+#. Programmer's name for it: SExplore\r
+#: Vcl/bdeconst.pas:41 \r
+msgid "E&xplore"
+msgstr "E&xplorador"
+
+#. Programmer's name for it: SLinkDetail\r
+#: Vcl/bdeconst.pas:42 \r
+msgid "'%s' cannot be opened"
+msgstr "'%s' no puede ser abierto"
+
+#. Programmer's name for it: SLinkMasterSource\r
+#: Vcl/bdeconst.pas:43 \r
+msgid "The MasterSource property of '%s' must be linked to a DataSource"
+msgstr ""
+"La propiedad MasterSource de '%s' debe estar enlazada con una fuente de "
+"datos DataSource"
+
+#. Programmer's name for it: SLinkMaster\r
+#: Vcl/bdeconst.pas:44 \r
+msgid "Unable to open the MasterSource Table"
+msgstr "Incapaz de abrir la tabla maestra"
+
+#. Programmer's name for it: SGQEVerb\r
+#: Vcl/bdeconst.pas:45 \r
+msgid "S&QL Builder..."
+msgstr "Constructor S&QL..."
+
+#. Programmer's name for it: SBindVerb\r
+#: Vcl/bdeconst.pas:46 \r
+msgid "Define &Parameters..."
+msgstr "Define &Parametros..."
+
+#. Programmer's name for it: SDisconnectDatabase\r
+#: Vcl/bdeconst.pas:48 \r Vcl/IBXConst.pas:43
+msgid "Database is currently connected. Disconnect and continue?"
+msgstr "La base de datos está conectada actualmente. Desconectar y continuar?"
+
+#. Programmer's name for it: SBDEError\r
+#: Vcl/bdeconst.pas:49 \r
+msgid "BDE error $%.4x"
+msgstr "Error BDE $%.4x"
+
+#. Programmer's name for it: SLookupSourceError\r
+#: Vcl/bdeconst.pas:50 \r
+msgid "Unable to use duplicate DataSource and LookupSource"
+msgstr "Incapaz de usar DataSource y LookupSource duplicados"
+
+#. Programmer's name for it: SLookupTableError\r
+#: Vcl/bdeconst.pas:51 \r
+msgid "LookupSource must be connected to TTable component"
+msgstr "LookupSource debe estar conectado a un componente TTable"
+
+#. Programmer's name for it: SLookupIndexError\r
+#: Vcl/bdeconst.pas:52 \r
+msgid "%s must be the lookup table's active index"
+msgstr "%s debe ser el índice activo de la tabla de búsqueda"
+
+#. Programmer's name for it: SParameterTypes\r
+#: Vcl/bdeconst.pas:53 \r Vcl/SqlConst.pas:66
+msgid ";Input;Output;Input/Output;Result"
+msgstr ";Entrada;Salida;Entrada/Salida;Resultado"
+
+#. Programmer's name for it: SInvalidParamFieldType\r
+#: Vcl/bdeconst.pas:54 \r
+msgid "Must have a valid field type selected"
+msgstr "Debe haber un tipo de campo válido seleccionado"
+
+#. Programmer's name for it: STruncationError\r
+#: Vcl/bdeconst.pas:55 \r
+msgid "Parameter '%s' truncated on output"
+msgstr "El parámetro '%s' truncado en salida"
+
+#. Programmer's name for it: SDataTypes\r
+#: Vcl/bdeconst.pas:56 \r Vcl/SqlConst.pas:67
+msgid ""
+";String;SmallInt;Integer;Word;Boolean;Float;Currency;BCD;Date;Time;"
+"DateTime;;;;Blob;Memo;Graphic;;;;;Cursor;"
+msgstr ""
+";String;SmallInt;Integer;Word;Boolean;Float;Currency;BCD;Date;Time;"
+"DateTime;;;;Blob;Memo;Graphic;;;;;Cursor;"
+
+#. Programmer's name for it: SResultName\r
+#: Vcl/bdeconst.pas:57 \r Vcl/SqlConst.pas:68
+msgid "Result"
+msgstr "Resultado"
+
+#. Programmer's name for it: SDBCaption\r
+#: Vcl/bdeconst.pas:58 \r
+msgid "%s%s%s Database"
+msgstr "%s%s%s Base de datos"
+
+#. Programmer's name for it: SParamEditor\r
+#: Vcl/bdeconst.pas:59 \r
+msgid "%s%s%s Parameters"
+msgstr "%s%s%s parámetros"
+
+#. Programmer's name for it: SIndexFilesEditor\r
+#: Vcl/bdeconst.pas:60 \r
+msgid "%s%s%s Index Files"
+msgstr "%s%s%s archivos de índice"
+
+#. Programmer's name for it: SIndexDoesNotExist\r
+#: Vcl/bdeconst.pas:62 \r
+msgid "Index does not exist. Index: %s"
+msgstr "El índice no existe. Indice: %s"
+
+#. Programmer's name for it: SNoTableName\r
+#: Vcl/bdeconst.pas:63 \r Vcl/SqlConst.pas:69
+msgid "Missing TableName property"
+msgstr "Propiedad TableName sin valor"
+
+#. Programmer's name for it: SNoDataSetField\r
+#: Vcl/bdeconst.pas:64 \r Vcl/SqlConst.pas:71
+msgid "Missing DataSetField property"
+msgstr "Propiedad DataSetField sin valor"
+
+#. Programmer's name for it: SBatchExecute\r
+#. Programmer's name for it: SExecute\r
+#: Vcl/bdeconst.pas:65 \r Vcl/IBXConst.pas:45
+msgid "E&xecute"
+msgstr "E&jectuar"
+
+#. Programmer's name for it: SNoCachedUpdates\r
+#: Vcl/bdeconst.pas:66 \r Vcl/SqlConst.pas:72
+msgid "Not in cached update mode"
+msgstr "No se encuentra en modo cached update"
+
+#. Programmer's name for it: SInvalidAliasName\r
+#: Vcl/bdeconst.pas:67 \r
+msgid "Invalid alias name %s"
+msgstr "Nombre de alias no válido: %s"
+
+#. Programmer's name for it: SNoFieldAccess\r
+#: Vcl/bdeconst.pas:68 \r
+msgid "Cannot access field '%s' in a filter"
+msgstr "No se puede acceder al campo '%s' en un filtro"
+
+#. Programmer's name for it: SUpdateSQLEditor\r
+#. Programmer's name for it: SIBUpdateSQLEditor\r
+#: Vcl/bdeconst.pas:69 \r Vcl/IBXConst.pas:49
+msgid "&UpdateSQL Editor..."
+msgstr "Editor &UpdateSQL..."
+
+#. Programmer's name for it: SNoDataSet\r
+#: Vcl/bdeconst.pas:70 \r Vcl/IBXConst.pas:46
+msgid "No dataset association"
+msgstr "No hay asociación con dataset"
+
+#. Programmer's name for it: SUntitled\r
+#: Vcl/bdeconst.pas:71 \r
+msgid "Untitled Application"
+msgstr "Aplicación sín nombre"
+
+#. Programmer's name for it: SUpdateWrongDB\r
+#: Vcl/bdeconst.pas:72 \r
+msgid "Cannot update, %s is not owned by %s"
+msgstr "No se puede actualizar, %s no es propiedad de %s"
+
+#. Programmer's name for it: SUpdateFailed\r
+#: Vcl/bdeconst.pas:73 \r
+msgid "Update failed"
+msgstr "Fallo en la actualización"
+
+#. Programmer's name for it: SSQLGenSelect\r
+#: Vcl/bdeconst.pas:74 \r Vcl/IBXConst.pas:47
+msgid "Must select at least one key field and one update field"
+msgstr "Debe seleccionar, al menos, un campo clave y un campo para actualizar"
+
+#. Programmer's name for it: SSQLNotGenerated\r
+#: Vcl/bdeconst.pas:75 \r Vcl/IBXConst.pas:48
+msgid "Update SQL statements not generated, exit anyway?"
+msgstr "Sentencia SQL no generada, abandonar?"
+
+#. Programmer's name for it: SSQLDataSetOpen\r
+#: Vcl/bdeconst.pas:76 \r Vcl/IBXConst.pas:51 Vcl/SqlConst.pas:78
+msgid "Unable to determine field names for %s"
+msgstr "Incapaz de determinar los nombres de campo para %s"
+
+#. Programmer's name for it: SLocalTransDirty\r
+#: Vcl/bdeconst.pas:77 \r
+msgid "The transaction isolation level must be dirty read for local databases"
+msgstr ""
+"El nivel de transacción debe ser ''dirty read'' para bases de datos locales"
+
+#. Programmer's name for it: SMissingDataSet\r
+#: Vcl/bdeconst.pas:78 \r Vcl/MidConst.pas:67 Vcl/SqlConst.pas:74
+msgid "Missing DataSet property"
+msgstr "Propiedad DataSet sin valor"
+
+#. Programmer's name for it: SNoProvider\r
+#: Vcl/bdeconst.pas:79 \r
+msgid "No provider available"
+msgstr "Proveedor no disponible"
+
+#. Programmer's name for it: SNotAQuery\r
+#: Vcl/bdeconst.pas:80 \r
+msgid "Dataset is not a query"
+msgstr "Fuente de datos no es resultado de una consulta"
+
+#. Programmer's name for it: sTabFailClear\r
+#: Vcl/ComStrs.pas:15 \r
+msgid "Failed to clear tab control"
+msgstr "Se ha producido un error al limpiar el control de página"
+
+#. Programmer's name for it: sTabFailRetrieve\r
+#: Vcl/ComStrs.pas:17 \r
+msgid "Failed to retrieve tab at index %d"
+msgstr "Se ha producido un error al recuperar la página en índice %d"
+
+#. Programmer's name for it: sTabFailGetObject\r
+#: Vcl/ComStrs.pas:18 \r
+msgid "Failed to get object at index %d"
+msgstr "Se ha producido un error al obtener objeto en índice %d"
+
+#. Programmer's name for it: sTabFailSet\r
+#: Vcl/ComStrs.pas:19 \r
+msgid "Failed to set tab \"%s\" at index %d"
+msgstr "Se ha producido un error al establecer página \"%s\" en el índice %d"
+
+#. Programmer's name for it: sTabFailSetObject\r
+#: Vcl/ComStrs.pas:20 \r
+msgid "Failed to set object at index %d"
+msgstr "Se ha producido un error al establecer objetos en el índice %d"
+
+#. Programmer's name for it: sInvalidIndex\r
+#: Vcl/ComStrs.pas:25 \r
+msgid "Invalid index"
+msgstr "Indice no válido"
+
+#. Programmer's name for it: sInsertError\r
+#: Vcl/ComStrs.pas:26 \r
+msgid "Unable to insert an item"
+msgstr "Incapaz de insertar un elemento"
+
+#. Programmer's name for it: sInvalidOwner\r
+#: Vcl/ComStrs.pas:28 \r
+msgid "Invalid owner"
+msgstr "Propietario no válido"
+
+#. Programmer's name for it: sUnableToCreateColumn\r
+#: Vcl/ComStrs.pas:29 \r
+msgid "Unable to create new column"
+msgstr "Incapaz de crear una nueva columna"
+
+#. Programmer's name for it: sUnableToCreateItem\r
+#: Vcl/ComStrs.pas:30 \r
+msgid "Unable to create new item"
+msgstr "Incapaz de crear un nuevo elemento"
+
+#. Programmer's name for it: sRichEditInsertError\r
+#: Vcl/ComStrs.pas:32 \r
+msgid "RichEdit line insertion error"
+msgstr "Se ha producido un error al insertar una linea en RichEdit"
+
+#. Programmer's name for it: sRichEditLoadFail\r
+#: Vcl/ComStrs.pas:33 \r
+msgid "Failed to Load Stream"
+msgstr "Se ha producido un error al cargar un Stream"
+
+#. Programmer's name for it: sRichEditSaveFail\r
+#: Vcl/ComStrs.pas:34 \r
+msgid "Failed to Save Stream"
+msgstr "Se ha producido un error al grabar un Stream"
+
+#. Programmer's name for it: sTooManyPanels\r
+#: Vcl/ComStrs.pas:36 \r
+msgid "StatusBar cannot have more than 64 panels"
+msgstr "El StatusBar no puede tener más de 64 paneles"
+
+#. Programmer's name for it: sHKError\r
+#: Vcl/ComStrs.pas:38 \r
+msgid "Error assigning Hot-Key to %s. %s"
+msgstr "Se ha producido un error al asignar Hot-Key a %s. %s"
+
+#. Programmer's name for it: sHKInvalid\r
+#: Vcl/ComStrs.pas:39 \r
+msgid "Hot-Key is invalid"
+msgstr "Hot-Key no es valido"
+
+#. Programmer's name for it: sHKInvalidWindow\r
+#: Vcl/ComStrs.pas:40 \r
+msgid "Window is invalid or a child window"
+msgstr "La ventana no es válida o es una ventana-hija"
+
+#. Programmer's name for it: sHKAssigned\r
+#: Vcl/ComStrs.pas:41 \r
+msgid "Hot-Key is assigned to another window"
+msgstr "Hot-Key está asignada a otra ventana"
+
+#. Programmer's name for it: sUDAssociated\r
+#: Vcl/ComStrs.pas:43 \r
+msgid "%s is already associated with %s"
+msgstr "%s ya está asociada con %s"
+
+#. Programmer's name for it: sInvalidComCtl32\r
+#: Vcl/ComStrs.pas:48 \r
+msgid "This control requires version 4.70 or greater of COMCTL32.DLL"
+msgstr "Este control requiere versión 4.70 o mayor de COMCTL32.DLL"
+
+#. Programmer's name for it: sDateTimeMax\r
+#: Vcl/ComStrs.pas:50 \r
+msgid "Date exceeds maximum of %s"
+msgstr "La fecha excede el máximo de %s"
+
+#. Programmer's name for it: sDateTimeMin\r
+#: Vcl/ComStrs.pas:51 \r
+msgid "Date is less than minimum of %s"
+msgstr "La fecha es menor que el mínimo de %s"
+
+#. Programmer's name for it: sNeedAllowNone\r
+#: Vcl/ComStrs.pas:52 \r
+msgid "You must be in ShowCheckbox mode to set to this date"
+msgstr "Debe estar en modo ShoyCheckbox para asignar esta fecha"
+
+#. Programmer's name for it: sFailSetCalDateTime\r
+#: Vcl/ComStrs.pas:53 \r
+msgid "Failed to set calendar date or time"
+msgstr ""
+"Se ha producido un error al establecer la fecha o la hora del calendario"
+
+#. Programmer's name for it: sFailSetCalMaxSelRange\r
+#: Vcl/ComStrs.pas:54 \r
+msgid "Failed to set maximum selection range"
+msgstr "Se ha producido un error al establecer el rango máximo de selección"
+
+#. Programmer's name for it: sFailSetCalMinMaxRange\r
+#: Vcl/ComStrs.pas:55 \r
+msgid "Failed to set calendar min/max range"
+msgstr "Se ha producido un error al establecer el rango max/min del calendario"
+
+#. Programmer's name for it: sCalRangeNeedsMultiSelect\r
+#: Vcl/ComStrs.pas:56 \r
+msgid "Date range can only be used in multiselect mode"
+msgstr "El rango de la fecha sólo puede ser usado en el modo multiselección"
+
+#. Programmer's name for it: sFailsetCalSelRange\r
+#: Vcl/ComStrs.pas:57 \r
+msgid "Failed to set calendar selected range"
+msgstr ""
+"Se ha producido un error al establecer el rango seleccionado del calendario"
+
+#. Programmer's name for it: SInvalidMetafile\r
+#: Vcl/Consts.pas:24 \r
+msgid "Metafile is not valid"
+msgstr "Metaarchivo no válido"
+
+#. Programmer's name for it: SInvalidImage\r
+#: Vcl/Consts.pas:26 \r
+msgid "Invalid image"
+msgstr "Imagen no válida"
+
+#. Programmer's name for it: SOleGraphic\r
+#: Vcl/Consts.pas:30 \r
+msgid "Invalid operation on TOleGraphic"
+msgstr "Operación sobre TOleGraphic no válida"
+
+#. Programmer's name for it: SDimsDoNotMatch\r
+#: Vcl/Consts.pas:37 \r
+msgid "Image dimensions do not match image list dimensions"
+msgstr ""
+"El tamaño de la imagen no concuerda con el tamaño de la lista de imágenes"
+
+#. Programmer's name for it: SInvalidImageList\r
+#: Vcl/Consts.pas:38 \r
+msgid "Invalid ImageList"
+msgstr "ImageList no válida"
+
+#. Programmer's name for it: SImageReadFail\r
+#: Vcl/Consts.pas:41 \r
+msgid "Failed to read ImageList data from stream"
+msgstr "Se ha producido un error al leer datos de ImageList desde el flujo"
+
+#. Programmer's name for it: SImageWriteFail\r
+#: Vcl/Consts.pas:42 \r
+msgid "Failed to write ImageList data to stream"
+msgstr ""
+"Se ha producido un error al escribir en el flujo los datos de Imagelist"
+
+#. Programmer's name for it: SWindowDCError\r
+#: Vcl/Consts.pas:43 \r
+msgid "Error creating window device context"
+msgstr ""
+"Se ha producido un error al crear el dispositivo de contexto de la ventana"
+
+#. Programmer's name for it: SClientNotSet\r
+#: Vcl/Consts.pas:44 \r
+msgid "Client of TDrag not initialized"
+msgstr "Cliente de TDrag no inicializado"
+
+#. Programmer's name for it: SWindowClass\r
+#: Vcl/Consts.pas:45 \r
+msgid "Error creating window class"
+msgstr "Se ha producido un error al crear la clase de ventana"
+
+#. Programmer's name for it: SWindowCreate\r
+#: Vcl/Consts.pas:46 \r
+msgid "Error creating window"
+msgstr "Se ha producido un error al crear la ventana"
+
+#. Programmer's name for it: SCannotFocus\r
+#: Vcl/Consts.pas:47 \r
+msgid "Cannot focus a disabled or invisible window"
+msgstr "Una ventana invisible o desactivada no puede recibir el foco"
+
+#. Programmer's name for it: SParentRequired\r
+#: Vcl/Consts.pas:48 \r
+msgid "Control '%s' has no parent window"
+msgstr "El control '%s' no tiene ventana contenedora"
+
+#. Programmer's name for it: STwoMDIForms\r
+#: Vcl/Consts.pas:65 \r
+msgid "Cannot have more than one MDI form per application"
+msgstr "No puede haber más de un formulario MDI por aplicación"
+
+#. Programmer's name for it: SCardDLLNotLoaded\r
+#: Vcl/Consts.pas:82 \r
+msgid "Could not load CARDS.DLL"
+msgstr "No se pudo cargar CARDS.DLL"
+
+#. Programmer's name for it: SDuplicateCardId\r
+#: Vcl/Consts.pas:83 \r
+msgid "Duplicate CardId found"
+msgstr "CardId duplicado encontrado"
+
+#. Programmer's name for it: SDdeErr\r
+#: Vcl/Consts.pas:85 \r
+msgid "An error returned from DDE  ($0%x)"
+msgstr "DDE devolvió un error ($0%x)"
+
+#. Programmer's name for it: SDdeConvErr\r
+#: Vcl/Consts.pas:86 \r
+msgid "DDE Error - conversation not established ($0%x)"
+msgstr "Hay un error DDE - conversación no establecida ($0%x)"
+
+#. Programmer's name for it: SDdeMemErr\r
+#: Vcl/Consts.pas:87 \r
+msgid "Error occurred when DDE ran out of memory ($0%x)"
+msgstr "Ocurrió un error cuando DDE se ejecutó fuera de memoria ($0%x)"
+
+#. Programmer's name for it: SDdeNoConnect\r
+#: Vcl/Consts.pas:88 \r
+msgid "Unable to connect DDE conversation"
+msgstr "Incapaz de conectar con conversación DDE"
+
+#. Programmer's name for it: SOldTShape\r
+#: Vcl/Consts.pas:93 \r
+msgid "Cannot load older version of TShape"
+msgstr "No se puede cargar una versión anterior de TShape"
+
+#. Programmer's name for it: SVMetafiles\r
+#: Vcl/Consts.pas:94 \r
+msgid "Metafiles"
+msgstr "Metaarchivos"
+
+#. Programmer's name for it: SVEnhMetafiles\r
+#: Vcl/Consts.pas:95 \r
+msgid "Enhanced Metafiles"
+msgstr "Metaarchivos realzados"
+
+#. Programmer's name for it: SOutlineIndexError\r
+#: Vcl/Consts.pas:106 \r
+msgid "Outline index not found"
+msgstr "Indice de Outline no encontrado"
+
+#. Programmer's name for it: SOutlineExpandError\r
+#: Vcl/Consts.pas:107 \r
+msgid "Parent must be expanded"
+msgstr "El ancestro debe estar expandido"
+
+#. Programmer's name for it: SOutlineError\r
+#: Vcl/Consts.pas:111 \r
+msgid "Invalid outline index"
+msgstr "Indice Outline no válido"
+
+#. Programmer's name for it: SOutlineBadLevel\r
+#: Vcl/Consts.pas:112 \r
+msgid "Incorrect level assignment"
+msgstr "Nivel de asignación incorrecto"
+
+#. Programmer's name for it: SOutlineSelection\r
+#: Vcl/Consts.pas:113 \r
+msgid "Invalid selection"
+msgstr "Selección no válida"
+
+#. Programmer's name for it: SOutlineFileLoad\r
+#: Vcl/Consts.pas:114 \r
+msgid "File load error"
+msgstr "Hay un error en la carga del archivo"
+
+#. Programmer's name for it: SOutlineMaxLevels\r
+#: Vcl/Consts.pas:116 \r
+msgid "Maximum outline depth exceeded"
+msgstr "Profundidad máxima de Outline excedida"
+
+#. Programmer's name for it: SmkcBkSp\r
+#: Vcl/Consts.pas:136 \r
+msgid "BkSp"
+msgstr "Retr"
+
+#. Programmer's name for it: SNoVolumeLabel\r
+#: Vcl/Consts.pas:162 \r
+msgid ": [ - no volume label - ]"
+msgstr ": [ - sin etiqueta - ]"
+
+#. !! obsolete - delete in 5.0\r
+#: Vcl/Consts.pas:173 \r
+msgid "Color"
+msgstr "Color"
+
+#. !! obsolete - delete in 5.0\r
+#: Vcl/Consts.pas:174 \r
+msgid "ABCDEFGHIJKLMNOP"
+msgstr "ABCDEFGHIJKLMNOP"
+
+#. Programmer's name for it: SInvalidRegType\r
+#: Vcl/Consts.pas:193 \r Rtl/Common/RTLConsts.pas:52
+msgid "Invalid data type for '%s'"
+msgstr "Tipo de dato que no es válido para '%s'"
+
+#. Programmer's name for it: SUnknownConversion\r
+#: Vcl/Consts.pas:195 \r
+msgid "Unknown RichEdit conversion file extension (.%s)"
+msgstr "Extensión de archivo (.%s) de texto enriquecido desconocida"
+
+#. Programmer's name for it: SCannotOpenAVI\r
+#: Vcl/Consts.pas:202 \r
+msgid "Cannot open AVI"
+msgstr "No se puede abrir el archivo AVI"
+
+#. Programmer's name for it: SNotOpenErr\r
+#: Vcl/Consts.pas:204 \r
+msgid "No MCI device open"
+msgstr "No hay dispositivos MCI abiertos"
+
+#. Programmer's name for it: SMPOpenFilter\r
+#: Vcl/Consts.pas:205 \r
+msgid ""
+"All files (*.*)|*.*|Wave files (*.wav)|*.wav|Midi files (*.mid)|*.mid|Video "
+"for Windows (*.avi)|*.avi"
+msgstr ""
+"Todos los archivos (*.*)|*.*|Archivos Wave|(*.wav)|*.wav|Archivos Midi (*."
+"mid)|*.mid|Videos para Windows (*.avi)|*.avi"
+
+#. Programmer's name for it: SMCIAVIVideo\r
+#: Vcl/Consts.pas:207 \r
+msgid "AVIVideo"
+msgstr "Video AVI"
+
+#. Programmer's name for it: SMCICDAudio\r
+#: Vcl/Consts.pas:208 \r
+msgid "CDAudio"
+msgstr "CD de Audio"
+
+#. Programmer's name for it: SMCIDAT\r
+#: Vcl/Consts.pas:209 \r
+msgid "DAT"
+msgstr "DAT"
+
+#. Programmer's name for it: SMCIDigitalVideo\r
+#: Vcl/Consts.pas:210 \r
+msgid "DigitalVideo"
+msgstr "Video Digital"
+
+#. Programmer's name for it: SMCIMMMovie\r
+#: Vcl/Consts.pas:211 \r
+msgid "MMMovie"
+msgstr "MMMovie"
+
+#. Programmer's name for it: SMCIOther\r
+#. CustomizeFrm..Tabs..OptionsTab..OtherLbl..Caption\r
+#: Vcl/Consts.pas:212 \r Vcl/CustomizeDlg.dfm:297
+msgid "Other"
+msgstr "Otro"
+
+#. Programmer's name for it: SMCIOverlay\r
+#: Vcl/Consts.pas:213 \r
+msgid "Overlay"
+msgstr "Overlay"
+
+#. Programmer's name for it: SMCIScanner\r
+#: Vcl/Consts.pas:214 \r
+msgid "Scanner"
+msgstr "Escáner"
+
+#. Programmer's name for it: SMCISequencer\r
+#: Vcl/Consts.pas:215 \r
+msgid "Sequencer"
+msgstr "Secuenciador"
+
+#. Programmer's name for it: SMCIVCR\r
+#: Vcl/Consts.pas:216 \r
+msgid "VCR"
+msgstr "VCR"
+
+#. Programmer's name for it: SMCIVideodisc\r
+#: Vcl/Consts.pas:217 \r
+msgid "Videodisc"
+msgstr "Videodisc"
+
+#. Programmer's name for it: SMCIWaveAudio\r
+#: Vcl/Consts.pas:218 \r
+msgid "WaveAudio"
+msgstr "WaveAudio"
+
+#. Programmer's name for it: SMCIUnknownError\r
+#: Vcl/Consts.pas:219 \r
+msgid "Unknown error code"
+msgstr "Código de error desconocido"
+
+#. Programmer's name for it: SServiceFailed\r
+#: Vcl/Consts.pas:228 \r
+msgid "Service failed on %s: %s"
+msgstr "El servicio falló en %s: %s"
+
+#. Programmer's name for it: SExecute\r
+#: Vcl/Consts.pas:229 \r
+msgid "execute"
+msgstr "ejecuta"
+
+#. Programmer's name for it: SStart\r
+#: Vcl/Consts.pas:230 \r
+msgid "start"
+msgstr "inicio"
+
+#. Programmer's name for it: SStop\r
+#: Vcl/Consts.pas:231 \r
+msgid "stop"
+msgstr "parada"
+
+#. Programmer's name for it: SPause\r
+#: Vcl/Consts.pas:232 \r
+msgid "pause"
+msgstr "pausa"
+
+#. Programmer's name for it: SContinue\r
+#: Vcl/Consts.pas:233 \r
+msgid "continue"
+msgstr "continuar"
+
+#. Programmer's name for it: SInterrogate\r
+#: Vcl/Consts.pas:234 \r
+msgid "interrogate"
+msgstr "pregunta"
+
+#. Programmer's name for it: SShutdown\r
+#: Vcl/Consts.pas:235 \r
+msgid "shutdown"
+msgstr "apagado"
+
+#. Programmer's name for it: SCustomError\r
+#: Vcl/Consts.pas:236 \r
+msgid "Service failed in custom message(%d): %s"
+msgstr "El servicio falló en mensaje personalizado (%d): %s"
+
+#. Programmer's name for it: SServiceInstallOK\r
+#: Vcl/Consts.pas:237 \r
+msgid "Service installed successfully"
+msgstr "Servicio instalado satisfactoriamente"
+
+#. Programmer's name for it: SServiceInstallFailed\r
+#: Vcl/Consts.pas:238 \r
+msgid "Service \"%s\" failed to install with error: \"%s\""
+msgstr "Se ha producido un error al instalar el servicio \"%s\". Error: \"%s\""
+
+#. Programmer's name for it: SServiceUninstallOK\r
+#: Vcl/Consts.pas:239 \r
+msgid "Service uninstalled successfully"
+msgstr "Servicio desinstalado satisfactoriamente"
+
+#. Programmer's name for it: SServiceUninstallFailed\r
+#: Vcl/Consts.pas:240 \r
+msgid "Service \"%s\" failed to uninstall with error: \"%s\""
+msgstr ""
+"Se ha producido un error al desintalar el servicio \"%s\". Error: \"%s\""
+
+#. Programmer's name for it: SDockedCtlNeedsName\r
+#: Vcl/Consts.pas:247 \r
+msgid "Docked control must have a name"
+msgstr "El control de acoplamiento debe tener un nombre"
+
+#. Programmer's name for it: SDockTreeRemoveError\r
+#: Vcl/Consts.pas:248 \r
+msgid "Error removing control from dock tree"
+msgstr ""
+"Se ha producido un error al eliminar el control del árbol de acoplamiento"
+
+#. Programmer's name for it: SDockZoneNotFound\r
+#: Vcl/Consts.pas:249 \r
+msgid " - Dock zone not found"
+msgstr " - Zona de acoplamiento no encontrada"
+
+#. Programmer's name for it: SDockZoneHasNoCtl\r
+#: Vcl/Consts.pas:250 \r
+msgid " - Dock zone has no control"
+msgstr " - Zona de acoplamiento no tiene un control"
+
+#. Programmer's name for it: SBrowserExecError\r
+#: Vcl/Consts.pas:257 \r
+msgid "No default browser is specified"
+msgstr "No hay navegador especificado por defecto"
+
+#. Programmer's name for it: SColorBoxCustomCaption\r
+#: Vcl/Consts.pas:259 \r
+msgid "Custom..."
+msgstr "Personalizar..."
+
+#. Programmer's name for it: SMultiSelectRequired\r
+#: Vcl/Consts.pas:261 \r
+msgid "Multiselect mode must be on for this feature"
+msgstr "El modo Multiselect debe estar activado para esta opción"
+
+#. Programmer's name for it: SKeyCaption\r
+#: Vcl/Consts.pas:263 \r
+msgid "Key"
+msgstr "Clave"
+
+#. Programmer's name for it: SValueCaption\r
+#: Vcl/Consts.pas:264 \r
+msgid "Value"
+msgstr "Valor"
+
+#. Programmer's name for it: SKeyConflict\r
+#: Vcl/Consts.pas:265 \r
+msgid "A key with the name of \"%s\" already exists"
+msgstr "Una clave con el nombre \"%s\" ya existe"
+
+#. Programmer's name for it: SKeyNotFound\r
+#: Vcl/Consts.pas:266 \r
+msgid "Key \"%s\" not found"
+msgstr "Clave \"%s\" no encontrada"
+
+#. Programmer's name for it: SNoColumnMoving\r
+#: Vcl/Consts.pas:267 \r
+msgid "goColMoving is not a supported option"
+msgstr "goColMoving no es una opción soportada"
+
+#. Programmer's name for it: SNoEqualsInKey\r
+#: Vcl/Consts.pas:268 \r
+msgid "Key may not contain equals sign (\"=\")"
+msgstr "La clave podría no contener signos igual (\"=\")"
+
+#. Programmer's name for it: SSendError\r
+#: Vcl/Consts.pas:270 \r
+msgid "Error sending mail"
+msgstr "Se ha producido un error al enviar el correo"
+
+#. Programmer's name for it: SAssignSubItemError\r
+#: Vcl/Consts.pas:271 \r
+msgid ""
+"Cannot assign a subitem to an actionbar when one of it's parent's is already "
+"assigned to an actionbar"
+msgstr ""
+"No se puede asignar un subelemento a un ActionBar cuando uno de sus "
+"ancestros ya está asignado a un ActionBar"
+
+#. Programmer's name for it: SDeleteItemWithSubItems\r
+#: Vcl/Consts.pas:272 \r
+msgid "Item %s has subitems, delete anyway?"
+msgstr "El elemento %s tiene subelementos. ¿Eliminar de todos modos?"
+
+#. Programmer's name for it: SMoreButtons\r
+#: Vcl/Consts.pas:273 \r
+msgid "More Buttons"
+msgstr "Más botones"
+
+#. Programmer's name for it: SErrorDownloadingURL\r
+#: Vcl/Consts.pas:274 \r
+msgid "Error downloading URL: %s"
+msgstr "Se ha producido un error en la descarga URL: %s"
+
+#. Programmer's name for it: SAllActions\r
+#: Vcl/Consts.pas:275 \r
+msgid "(All Actions)"
+msgstr "(Todas las acciones)"
+
+#. Programmer's name for it: SNoCategory\r
+#: Vcl/Consts.pas:276 \r
+msgid "(No Category)"
+msgstr "Ninguna categoría"
+
+#. Programmer's name for it: SExpand\r
+#: Vcl/Consts.pas:277 \r
+msgid "Expand"
+msgstr "Expandir"
+
+#. Programmer's name for it: SErrorSettingPath\r
+#: Vcl/Consts.pas:278 \r
+msgid "Error setting path: \"%s\""
+msgstr "Se ha producido un error al establecer la ruta: \"%s\""
+
+#. Programmer's name for it: SLBPutError\r
+#: Vcl/Consts.pas:279 \r
+msgid "Attempting to put items into a virtual style listbox"
+msgstr "Intentando colocar elementos en una ListBox de estilo virtual"
+
+#. Programmer's name for it: SErrorLoadingFile\r
+#: Vcl/Consts.pas:280 \r
+msgid ""
+"Error loading previously saved settings file: %sWould you like to delete it?"
+msgstr ""
+"Se ha producido un error al cargar el archivo de asignaciones previamente "
+"guardado: %s ¿Querría borrarlo?"
+
+#. Programmer's name for it: SResetUsageData\r
+#: Vcl/Consts.pas:281 \r
+msgid "Reset all usage data?"
+msgstr "¿Inicializar todos los datos del usuario?"
+
+#. Programmer's name for it: SFileRunDialogTitle\r
+#. StandardActions..ActionList1..FileRun1..BrowseDlg.Title\r
+#: Vcl/Consts.pas:282 \r Vcl/ActnRes.dfm:237
+msgid "Run"
+msgstr "Ejecutar"
+
+#. Programmer's name for it: SNoName\r
+#: Vcl/Consts.pas:283 \r
+msgid "(No Name)"
+msgstr "(Sin nombre)"
+
+#. Programmer's name for it: SErrorActionManagerNotAssigned\r
+#: Vcl/Consts.pas:284 \r
+msgid "ActionManager must first be assigned"
+msgstr "El ActionManager primero debe ser asignado"
+
+#. Programmer's name for it: SAddRemoveButtons\r
+#: Vcl/Consts.pas:285 \r
+msgid "&Add or Remove Buttons"
+msgstr "&Añadir o eliminar botones"
+
+#. Programmer's name for it: SResetActionToolBar\r
+#: Vcl/Consts.pas:286 \r
+msgid "Reset Toolbar"
+msgstr "Inicializar Toolbar"
+
+#. Programmer's name for it: SCustomize\r
+#: Vcl/Consts.pas:287 \r
+msgid "&Customize"
+msgstr "&Personalizar"
+
+#. Programmer's name for it: SSeparator\r
+#: Vcl/Consts.pas:288 \r
+msgid "Separator"
+msgstr "Separador"
+
+#. Programmer's name for it: SCirularReferencesNotAllowed\r
+#: Vcl/Consts.pas:289 \r
+msgid "Circular references not allowed"
+msgstr "No se permiten referencias circulares"
+
+#. Programmer's name for it: SCannotHideActionBand\r
+#: Vcl/Consts.pas:290 \r
+msgid "%s does not allow hiding"
+msgstr "%s no permite ocultarse"
+
+#. Programmer's name for it: SErrorSettingCount\r
+#: Vcl/Consts.pas:291 \r
+msgid "Error setting %s.Count"
+msgstr "Se ha producido un error al establecer %s.Count"
+
+#. Programmer's name for it: SListBoxMustBeVirtual\r
+#: Vcl/Consts.pas:292 \r
+msgid "Listbox (%s) style must be virtual in order to set Count"
+msgstr "El estilo del Listbox (%s) debe ser virtual para establecer Count"
+
+#. Programmer's name for it: SUnableToSaveSettings\r
+#: Vcl/Consts.pas:293 \r
+msgid "Unable to save settings"
+msgstr "Incapaz de guadar la configuración"
+
+#. Programmer's name for it: sInvalidClassReference\r
+#: Vcl/CtlConsts.pas:14 \r
+msgid "Invalid class reference for TAppletApplication"
+msgstr "Referencia de clase no válida para TAppletApplication"
+
+#. Programmer's name for it: SInvalidFieldSize\r
+#: Vcl/DBConsts.pas:15 \r
+msgid "Invalid field size"
+msgstr "Tamaño de campo no válido"
+
+#. Programmer's name for it: SInvalidFieldKind\r
+#: Vcl/DBConsts.pas:16 \r
+msgid "Invalid FieldKind"
+msgstr "Tipo de campo no válido"
+
+#. Programmer's name for it: SInvalidFieldRegistration\r
+#: Vcl/DBConsts.pas:17 \r
+msgid "Invalid field registration"
+msgstr "Registro del campo no válido"
+
+#. Programmer's name for it: SUnknownFieldType\r
+#: Vcl/DBConsts.pas:18 \r
+msgid "Field '%s' is of an unknown type"
+msgstr "El tipo del campo '%s' es desconocido"
+
+#. Programmer's name for it: SFieldNameMissing\r
+#: Vcl/DBConsts.pas:19 \r
+msgid "Field name missing"
+msgstr "Falta el nombre del campo"
+
+#. Programmer's name for it: SDuplicateFieldName\r
+#: Vcl/DBConsts.pas:20 \r
+msgid "Duplicate field name '%s'"
+msgstr "Nombre de campo '%s' duplicado"
+
+#. Programmer's name for it: SFieldNotFound\r
+#: Vcl/DBConsts.pas:21 \r
+msgid "Field '%s' not found"
+msgstr "No se encuentra el campo %s"
+
+#. Programmer's name for it: SFieldAccessError\r
+#: Vcl/DBConsts.pas:22 \r
+msgid "Cannot access field '%s' as type %s"
+msgstr "No se puede acceder el campo '%s' como tipo %s"
+
+#. Programmer's name for it: SFieldValueError\r
+#: Vcl/DBConsts.pas:23 \r
+msgid "Invalid value for field '%s'"
+msgstr "Valor no válido para el campo '%s'"
+
+#. Programmer's name for it: SFieldRangeError\r
+#: Vcl/DBConsts.pas:24 \r
+msgid "%g is not a valid value for field '%s'. The allowed range is %g to %g"
+msgstr ""
+"%g no es un valor permitido para el campo '%s'. El rango válido es de %g a %g"
+
+#. Programmer's name for it: SBcdFieldRangeError\r
+#: Vcl/DBConsts.pas:25 \r
+msgid "%s is not a valid value for field '%s'. The allowed range is %s to %s"
+msgstr ""
+"%s no es un valor permitido para el campo '%s'. El rango válido es de %s a %s"
+
+#. Programmer's name for it: SInvalidIntegerValue\r
+#: Vcl/DBConsts.pas:26 \r
+msgid "'%s' is not a valid integer value for field '%s'"
+msgstr "'%s' no es un valor entero válido para el campo '%s'"
+
+#. Programmer's name for it: SInvalidBoolValue\r
+#: Vcl/DBConsts.pas:27 \r
+msgid "'%s' is not a valid boolean value for field '%s'"
+msgstr "'%s' no es un valor lógico válido para el campo '%s'"
+
+#. Programmer's name for it: SInvalidFloatValue\r
+#: Vcl/DBConsts.pas:28 \r
+msgid "'%s' is not a valid floating point value for field '%s'"
+msgstr "'%s' no es un valor punto flotante válido para el campo '%s'"
+
+#. Programmer's name for it: SFieldTypeMismatch\r
+#: Vcl/DBConsts.pas:29 \r
+msgid "Type mismatch for field '%s', expecting: %s actual: %s"
+msgstr "El campo '%s' no es del tipo esperado %s, es %s"
+
+#. Programmer's name for it: SFieldSizeMismatch\r
+#: Vcl/DBConsts.pas:30 \r
+msgid "Size mismatch for field '%s', expecting: %d actual: %d"
+msgstr "El campo '%s' no es del tamaño esperado %d, es %d"
+
+#. Programmer's name for it: SInvalidVarByteArray\r
+#: Vcl/DBConsts.pas:31 \r
+msgid "Invalid variant type or size for field '%s'"
+msgstr "Tipo o tamaño de variante no válido para el campo '%s'"
+
+#. Programmer's name for it: SFieldOutOfRange\r
+#: Vcl/DBConsts.pas:32 \r
+msgid "Value of field '%s' is out of range"
+msgstr "El valor del campo '%s' está fuera del rango"
+
+#. SBCDOverflow = '(Overflow)';\r
+#: Vcl/DBConsts.pas:34 \r
+msgid "Field '%s' must have a value"
+msgstr "El campo '%s' debe contener un valor"
+
+#. Programmer's name for it: SDataSetMissing\r
+#: Vcl/DBConsts.pas:35 \r
+msgid "Field '%s' has no dataset"
+msgstr "El campo '%s' no tiene fuente de datos"
+
+#. Programmer's name for it: SInvalidCalcType\r
+#: Vcl/DBConsts.pas:36 \r
+msgid "Field '%s' cannot be a calculated or lookup field"
+msgstr "El campo '%s' no es de tipo calculado o búsqueda"
+
+#. Programmer's name for it: SFieldReadOnly\r
+#: Vcl/DBConsts.pas:37 \r
+msgid "Field '%s' cannot be modified"
+msgstr "El campo '%s' no se puede modificar"
+
+#. Programmer's name for it: SFieldIndexError\r
+#: Vcl/DBConsts.pas:38 \r
+msgid "Field index out of range"
+msgstr "Indice de campo fuera de rango"
+
+#. Programmer's name for it: SNoFieldIndexes\r
+#: Vcl/DBConsts.pas:39 \r
+msgid "No index currently active"
+msgstr "Actualmente no hay un índice activo"
+
+#. Programmer's name for it: SNotIndexField\r
+#: Vcl/DBConsts.pas:40 \r
+msgid "Field '%s' is not indexed and cannot be modified"
+msgstr "El campo '%s' no está indexado y no se puede modificar"
+
+#. Programmer's name for it: SIndexFieldMissing\r
+#: Vcl/DBConsts.pas:41 \r
+msgid "Cannot access index field '%s'"
+msgstr "Inaccesible el campo '%s' del índice"
+
+#. Programmer's name for it: SDuplicateIndexName\r
+#: Vcl/DBConsts.pas:42 \r
+msgid "Duplicate index name '%s'"
+msgstr "Nombre de índice '%s' duplicado"
+
+#. Programmer's name for it: SNoIndexForFields\r
+#: Vcl/DBConsts.pas:43 \r
+msgid "No index for fields '%s'"
+msgstr "No hay índice para los campos '%s' "
+
+#. Programmer's name for it: SIndexNotFound\r
+#: Vcl/DBConsts.pas:44 \r
+msgid "Index '%s' not found"
+msgstr "El índice '%s' no existe"
+
+#. Programmer's name for it: SDuplicateName\r
+#: Vcl/DBConsts.pas:45 \r
+msgid "Duplicate name '%s' in %s"
+msgstr "Nombre '%s' duplicado en %s"
+
+#. Programmer's name for it: SCircularDataLink\r
+#: Vcl/DBConsts.pas:46 \r
+msgid "Circular datalinks are not allowed"
+msgstr "No se permiten enlaces de datos circulares"
+
+#. Programmer's name for it: SLookupInfoError\r
+#: Vcl/DBConsts.pas:47 \r
+msgid "Lookup information for field '%s' is incomplete"
+msgstr "La información de búsqueda para el campo '%s' está incompleta"
+
+#. Programmer's name for it: SNewLookupFieldCaption\r
+#: Vcl/DBConsts.pas:48 \r
+msgid "New Lookup Field"
+msgstr "Nuevo campo Lookup"
+
+#. Programmer's name for it: SDataSourceChange\r
+#: Vcl/DBConsts.pas:49 \r
+msgid "DataSource cannot be changed"
+msgstr "La fuente de datos no puede ser cambiada"
+
+#. Programmer's name for it: SNoNestedMasterSource\r
+#: Vcl/DBConsts.pas:50 \r
+msgid "Nested datasets cannot have a MasterSource"
+msgstr "La datasets anidados no pueden tener un MasterSource"
+
+#. Programmer's name for it: SDataSetOpen\r
+#: Vcl/DBConsts.pas:51 \r
+msgid "Cannot perform this operation on an open dataset"
+msgstr "No puede ejecutarse esta operación en un dataset abierto"
+
+#. Programmer's name for it: SNotEditing\r
+#: Vcl/DBConsts.pas:52 \r
+msgid "Dataset not in edit or insert mode"
+msgstr "El dataset no está en modo edición o inserción"
+
+#. Programmer's name for it: SDataSetClosed\r
+#: Vcl/DBConsts.pas:53 \r
+msgid "Cannot perform this operation on a closed dataset"
+msgstr "No puede ejecutarse esta operación en un dataset cerrado"
+
+#. Programmer's name for it: SDataSetEmpty\r
+#: Vcl/DBConsts.pas:54 \r
+msgid "Cannot perform this operation on an empty dataset"
+msgstr "No puede ejecutarse esta operación en un dataset vacío"
+
+#. Programmer's name for it: SDataSetReadOnly\r
+#: Vcl/DBConsts.pas:55 \r
+msgid "Cannot modify a read-only dataset"
+msgstr "No puede modificarse un dataset de sólo lectura"
+
+#. Programmer's name for it: SNestedDataSetClass\r
+#: Vcl/DBConsts.pas:56 \r
+msgid "Nested dataset must inherit from %s"
+msgstr "El dataset anidado debe heredar de %s"
+
+#. Programmer's name for it: SExprTermination\r
+#: Vcl/DBConsts.pas:57 \r
+msgid "Filter expression incorrectly terminated"
+msgstr "Expresión del filtro terminada incorrectamente"
+
+#. Programmer's name for it: SExprNameError\r
+#: Vcl/DBConsts.pas:58 \r
+msgid "Unterminated field name"
+msgstr "Nombre de campo sin terminar"
+
+#. Programmer's name for it: SExprStringError\r
+#: Vcl/DBConsts.pas:59 \r
+msgid "Unterminated string constant"
+msgstr "Cadena constante sin terminar"
+
+#. Programmer's name for it: SExprInvalidChar\r
+#: Vcl/DBConsts.pas:60 \r
+msgid "Invalid filter expression character: '%s'"
+msgstr "Carácter '%s' no válido en una expresión de filtro"
+
+#. Programmer's name for it: SExprNoLParen\r
+#: Vcl/DBConsts.pas:61 \r
+msgid "'(' expected but %s found"
+msgstr " '(' esperado, pero se encontró %s"
+
+#. Programmer's name for it: SExprNoRParen\r
+#: Vcl/DBConsts.pas:62 \r
+msgid "')' expected but %s found"
+msgstr " ')' esperado, pero se encontró %s"
+
+#. Programmer's name for it: SExprNoRParenOrComma\r
+#: Vcl/DBConsts.pas:63 \r
+msgid "')' or ',' expected but %s found"
+msgstr "')' o ',' esperados, pero se encontró %s"
+
+#. Programmer's name for it: SExprExpected\r
+#: Vcl/DBConsts.pas:64 \r
+msgid "Expression expected but %s found"
+msgstr "Expresión esperada pero encontrado %s"
+
+#. Programmer's name for it: SExprBadField\r
+#: Vcl/DBConsts.pas:65 \r
+msgid "Field '%s' cannot be used in a filter expression"
+msgstr "El campo '%s' no se puede utilizar en una expresión de filtro"
+
+#. Programmer's name for it: SExprBadNullTest\r
+#: Vcl/DBConsts.pas:66 \r
+msgid "NULL only allowed with '=' and '<>'"
+msgstr "El valor nulo (NULL) sólo se permite con '=' y '<>'"
+
+#. Programmer's name for it: SExprRangeError\r
+#: Vcl/DBConsts.pas:67 \r
+msgid "Constant out of range"
+msgstr "Constante fuera de rango"
+
+#. Programmer's name for it: SExprNotBoolean\r
+#: Vcl/DBConsts.pas:68 \r
+msgid "Field '%s' is not of type Boolean"
+msgstr "El campo '%s' no es de tipo lógico"
+
+#. Programmer's name for it: SExprIncorrect\r
+#: Vcl/DBConsts.pas:69 \r
+msgid "Incorrectly formed filter expression"
+msgstr "Expresión del filtro formada incorrectamente"
+
+#. Programmer's name for it: SExprNothing\r
+#: Vcl/DBConsts.pas:70 \r
+msgid "nothing"
+msgstr "nada"
+
+#. Programmer's name for it: SExprTypeMis\r
+#: Vcl/DBConsts.pas:71 \r
+msgid "Type mismatch in expression"
+msgstr "El tipo no concuerda en la expresión"
+
+#. Programmer's name for it: SExprBadScope\r
+#: Vcl/DBConsts.pas:72 \r
+msgid "Operation cannot mix aggregate value with record-varying value"
+msgstr ""
+"La operación no puede mezclar valores de agregación con valores de registro "
+"variable"
+
+#. Programmer's name for it: SExprNoArith\r
+#: Vcl/DBConsts.pas:73 \r
+msgid "Arithmetic in filter expressions not supported"
+msgstr "Operación aritmética no soportada en la expresión del filtro"
+
+#. Programmer's name for it: SExprNotAgg\r
+#: Vcl/DBConsts.pas:74 \r
+msgid "Expression is not an aggregate expression"
+msgstr "La expresión no es una expresión de agregación"
+
+#. Programmer's name for it: SExprBadConst\r
+#: Vcl/DBConsts.pas:75 \r
+msgid "Constant is not correct type %s"
+msgstr "La constante no es del tipo correcto %s"
+
+#. Programmer's name for it: SExprNoAggFilter\r
+#: Vcl/DBConsts.pas:76 \r
+msgid "Aggregate expressions not allowed in filters"
+msgstr "No se permiten expresiones de agregación en los filtros"
+
+#. Programmer's name for it: SExprEmptyInList\r
+#: Vcl/DBConsts.pas:77 \r
+msgid "IN predicate list may not be empty"
+msgstr "No puede estar vacía la lista de predicados de entrada (IN)"
+
+#. Programmer's name for it: SInvalidKeywordUse\r
+#: Vcl/DBConsts.pas:78 \r
+msgid "Invalid use of keyword"
+msgstr "Uso de clave no válido"
+
+#. Programmer's name for it: SParameterNotFound\r
+#: Vcl/DBConsts.pas:81 \r
+msgid "Parameter '%s' not found"
+msgstr "No se encuentra el parámetro '%s'"
+
+#. Programmer's name for it: SInvalidVersion\r
+#: Vcl/DBConsts.pas:82 \r
+msgid "Unable to load bind parameters"
+msgstr "No se pueden leer los argumentos de enlace"
+
+#. Programmer's name for it: SParamTooBig\r
+#: Vcl/DBConsts.pas:83 \r
+msgid "Parameter '%s', cannot save data larger than %d bytes"
+msgstr "El parámetro '%s' no puede guardar datos mayores a %d bytes"
+
+#. Programmer's name for it: SBadFieldType\r
+#: Vcl/DBConsts.pas:84 \r
+msgid "Field '%s' is of an unsupported type"
+msgstr "El campo '%s' es de un tipo no soportado"
+
+#. Programmer's name for it: SAggActive\r
+#: Vcl/DBConsts.pas:85 \r
+msgid "Property may not be modified while aggregate is active"
+msgstr "La propiedad no puede ser modificada mientras agregar esté activo"
+
+#. Programmer's name for it: SProviderSQLNotSupported\r
+#: Vcl/DBConsts.pas:86 \r
+msgid "SQL not supported: %s"
+msgstr "SQL no soportado: %s"
+
+#. Programmer's name for it: SProviderExecuteNotSupported\r
+#: Vcl/DBConsts.pas:87 \r
+msgid "Execute not supported: %s"
+msgstr "Ejecutar no soportado: %s"
+
+#. Programmer's name for it: SExprNoAggOnCalcs\r
+#: Vcl/DBConsts.pas:88 \r
+msgid ""
+"Field '%s' is not the correct type of calculated field to be used in an "
+"aggregate, use an internalcalc"
+msgstr ""
+"El campo %s no es un tipo correcto de campo calculado para ser usado en una "
+"agregración, utiliza un \"internalcalc\""
+
+#. Programmer's name for it: SRecordChanged\r
+#: Vcl/DBConsts.pas:89 \r
+msgid "Record not found or changed by another user"
+msgstr "Registro no encontrado o cambiado por otro usuario"
+
+#. Programmer's name for it: SDataSetUnidirectional\r
+#: Vcl/DBConsts.pas:90 \r
+msgid "Operation not allowed on a unidirectional dataset"
+msgstr "Operación no permitida en una fuente de datos unidireccional"
+
+#. Programmer's name for it: SUnassignedVar\r
+#: Vcl/DBConsts.pas:91 \r
+msgid "Unassigned variant value"
+msgstr "Valor variant sin asignar"
+
+#. Programmer's name for it: SRecordNotFound\r
+#: Vcl/DBConsts.pas:92 \r Vcl/MidConst.pas:62
+msgid "Record not found"
+msgstr "Registro no encontrado"
+
+#. Programmer's name for it: SFileNameBlank\r
+#: Vcl/DBConsts.pas:93 \r
+msgid "FileName property cannot be blank"
+msgstr "La propiedad FileName no puede estar en blanco"
+
+#. Programmer's name for it: SBcdOverflow\r
+#: Vcl/DBConsts.pas:97 \r
+msgid "BCD overflow"
+msgstr "Sobrecarga BCD"
+
+#. Programmer's name for it: SInvalidBcdValue\r
+#: Vcl/DBConsts.pas:98 \r
+msgid "%s is not a valid BCD value"
+msgstr "%s no es un valor BCD válido"
+
+#. Programmer's name for it: SInvalidFormatType\r
+#: Vcl/DBConsts.pas:99 \r
+msgid "Invalid format type for BCD"
+msgstr "Tipo de formato para BCD no válido"
+
+#. Programmer's name for it: SCouldNotParseTimeStamp\r
+#: Vcl/DBConsts.pas:103 \r
+msgid "Could not parse SQL TimeStamp string"
+msgstr "Podría no analizar la cadena SQL TimeStamp"
+
+#. Programmer's name for it: SInvalidSqlTimeStamp\r
+#: Vcl/DBConsts.pas:104 \r
+msgid "Invalid SQL date/time values"
+msgstr "Valores fecha/hora SQL no válidos"
+
+#. Programmer's name for it: SBackupCaption\r
+#: Vcl/IBDCLConst.pas:6 \r
+msgid "Backup Database files"
+msgstr ""
+
+#. Programmer's name for it: SRestoreSize\r
+#: Vcl/IBDCLConst.pas:7 \r
+msgid "Size(Bytes)"
+msgstr ""
+
+#. Programmer's name for it: SFileNames\r
+#: Vcl/IBDCLConst.pas:8 \r
+msgid "Filename(s)"
+msgstr ""
+
+#. Programmer's name for it: SPages\r
+#: Vcl/IBDCLConst.pas:9 \r
+msgid "Pages"
+msgstr "Páginas"
+
+#. Programmer's name for it: SDatabasefiles\r
+#: Vcl/IBDCLConst.pas:10 \r
+msgid "Database Files|*.gdb"
+msgstr ""
+
+#. Programmer's name for it: SIBTransactionEditor\r
+#: Vcl/IBXConst.pas:41 \r
+msgid "&Transaction Editor..."
+msgstr "Editor de transacción..."
+
+#. Programmer's name for it: SDatabaseFilter\r
+#: Vcl/IBXConst.pas:42 \r
+msgid "Database Files (*.gdb)|*.gdb|All files (*.*)|*.*"
+msgstr ""
+
+#. Programmer's name for it: SCommitTransaction\r
+#: Vcl/IBXConst.pas:44 \r
+msgid "Transaction is currently Active. Rollback and continue?"
+msgstr ""
+
+#. Programmer's name for it: SIBDataSetEditor\r
+#: Vcl/IBXConst.pas:50 \r
+msgid "&Dataset Editor..."
+msgstr "Editor del Conjunto de Da&tos..."
+
+#. Programmer's name for it: SDefaultTransaction\r
+#: Vcl/IBXConst.pas:52 \r
+msgid "%s, Default"
+msgstr ""
+
+#. Programmer's name for it: SUnknownError\r
+#: Vcl/IBXConst.pas:55 \r
+msgid "Unknown error"
+msgstr "Hay un error desconocido"
+
+#. Programmer's name for it: SInterBaseMissing\r
+#: Vcl/IBXConst.pas:57 \r
+msgid ""
+"InterBase library gds32.dll not found in the path. Please install InterBase "
+"to use this functionality"
+msgstr ""
+
+#. Programmer's name for it: SInterBaseMissing\r
+#: Vcl/IBXConst.pas:60 \r
+msgid ""
+"InterBase library gds.so.0 not found in the path. Please install InterBase "
+"to use this functionality"
+msgstr ""
+
+#. Programmer's name for it: SInterBaseInstallMissing\r
+#: Vcl/IBXConst.pas:62 \r
+msgid ""
+"InterBase Install DLL ibinstall.dll not found in the path. Please install "
+"InterBase 6 to use this functionality"
+msgstr ""
+
+#. Programmer's name for it: SIB60feature\r
+#: Vcl/IBXConst.pas:63 \r
+msgid ""
+"%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this "
+"functonality"
+msgstr ""
+
+#. Programmer's name for it: SNotSupported\r
+#: Vcl/IBXConst.pas:64 \r
+msgid "Unsupported feature"
+msgstr "Característica no soportada"
+
+#. Programmer's name for it: SNotPermitted\r
+#: Vcl/IBXConst.pas:65 \r
+msgid "Not permitted"
+msgstr "No permitido"
+
+#. Programmer's name for it: SFileAccessError\r
+#: Vcl/IBXConst.pas:66 \r
+msgid "Temporary file access error"
+msgstr ""
+
+#. Programmer's name for it: SConnectionTimeout\r
+#: Vcl/IBXConst.pas:67 \r
+msgid "Database connection timed out"
+msgstr "Conexión a base de datos fuera de tiempo."
+
+#. Programmer's name for it: SCannotSetDatabase\r
+#: Vcl/IBXConst.pas:68 \r
+msgid "Cannot set database"
+msgstr "No se puede establecer la base de datos"
+
+#. Programmer's name for it: SCannotSetTransaction\r
+#: Vcl/IBXConst.pas:69 \r
+msgid "Cannot set transaction"
+msgstr ""
+
+#. Programmer's name for it: SOperationCancelled\r
+#: Vcl/IBXConst.pas:70 \r
+msgid "Operation cancelled at user's request"
+msgstr ""
+
+#. Programmer's name for it: SDPBConstantNotSupported\r
+#: Vcl/IBXConst.pas:71 \r
+msgid "DPB Constant (isc_dpb_%s) is unsupported"
+msgstr ""
+
+#. Programmer's name for it: SDPBConstantUnknown\r
+#: Vcl/IBXConst.pas:72 \r
+msgid "DPB Constant (%d) is unknown"
+msgstr ""
+
+#. Programmer's name for it: STPBConstantNotSupported\r
+#: Vcl/IBXConst.pas:73 \r
+msgid "TPB Constant (isc_tpb_%s) is unsupported"
+msgstr ""
+
+#. Programmer's name for it: STPBConstantUnknown\r
+#: Vcl/IBXConst.pas:74 \r
+msgid "TPB Constant (%d) is unknown"
+msgstr ""
+
+#. Programmer's name for it: SDatabaseClosed\r
+#: Vcl/IBXConst.pas:75 \r
+msgid "Cannot perform operation -- DB is not open"
+msgstr ""
+"No se puede ejecutar esta operación en una base de datos que no está abierta"
+
+#. Programmer's name for it: SDatabaseOpen\r
+#: Vcl/IBXConst.pas:76 \r
+msgid "Cannot perform operation -- DB is currently open"
+msgstr "No se puede ejecutar esta operación en una base de datos abierta"
+
+#. Programmer's name for it: SDatabaseNameMissing\r
+#: Vcl/IBXConst.pas:77 \r
+msgid "Database name is missing"
+msgstr "Base de datos no posee nombre"
+
+#. Programmer's name for it: SNotInTransaction\r
+#: Vcl/IBXConst.pas:78 \r
+msgid "Transaction is not active"
+msgstr ""
+
+#. Programmer's name for it: SInTransaction\r
+#: Vcl/IBXConst.pas:79 \r
+msgid "Transaction is active"
+msgstr ""
+
+#. Programmer's name for it: STimeoutNegative\r
+#: Vcl/IBXConst.pas:80 \r
+msgid "Timeout values cannot be negative"
+msgstr ""
+
+#. Programmer's name for it: SNoDatabasesInTransaction\r
+#: Vcl/IBXConst.pas:81 \r
+msgid "No databases are listed in transaction component"
+msgstr ""
+
+#. Programmer's name for it: SUpdateWrongDB\r
+#: Vcl/IBXConst.pas:82 \r
+msgid "Updating wrong database"
+msgstr ""
+
+#. Programmer's name for it: SUpdateWrongTR\r
+#: Vcl/IBXConst.pas:83 \r
+msgid "Updating wrong transaction. Unique transaction expected in set"
+msgstr ""
+
+#. Programmer's name for it: SDatabaseNotAssigned\r
+#: Vcl/IBXConst.pas:84 \r
+msgid "Database not assigned"
+msgstr "Base de datos no asignada"
+
+#. Programmer's name for it: STransactionNotAssigned\r
+#: Vcl/IBXConst.pas:85 \r
+msgid "Transaction not assigned"
+msgstr "Transacción no asignada"
+
+#. Programmer's name for it: SXSQLDAIndexOutOfRange\r
+#: Vcl/IBXConst.pas:86 \r
+msgid "XSQLDA index out of range"
+msgstr "El índice de XSQLDA está fuera del rango"
+
+#. Programmer's name for it: SXSQLDANameDoesNotExist\r
+#: Vcl/IBXConst.pas:87 \r
+msgid "XSQLDA name does not exist (%s)"
+msgstr "El nombre XSQLDA no existe (%s)"
+
+#. Programmer's name for it: SEOF\r
+#: Vcl/IBXConst.pas:88 \r
+msgid "End of file"
+msgstr ""
+
+#. Programmer's name for it: SBOF\r
+#: Vcl/IBXConst.pas:89 \r
+msgid "Beginning of file"
+msgstr ""
+
+#. Programmer's name for it: SInvalidStatementHandle\r
+#: Vcl/IBXConst.pas:90 \r
+msgid "Invalid statement handle"
+msgstr "Manejador (handle) de la declaración no válido"
+
+#. Programmer's name for it: SSQLOpen\r
+#: Vcl/IBXConst.pas:91 \r
+msgid "IBSQL Open"
+msgstr ""
+
+#. Programmer's name for it: SSQLClosed\r
+#: Vcl/IBXConst.pas:92 \r
+msgid "IBSQL Closed"
+msgstr ""
+
+#. Programmer's name for it: SDatasetOpen\r
+#: Vcl/IBXConst.pas:93 \r
+msgid "Dataset open"
+msgstr ""
+
+#. Programmer's name for it: SDatasetClosed\r
+#: Vcl/IBXConst.pas:94 \r
+msgid "Dataset closed"
+msgstr ""
+
+#. Programmer's name for it: SUnknownSQLDataType\r
+#: Vcl/IBXConst.pas:95 \r
+msgid "Unknown SQL Data type (%d)"
+msgstr "Tipo de dato SQL (%d) desconocido"
+
+#. Programmer's name for it: SInvalidColumnIndex\r
+#: Vcl/IBXConst.pas:96 \r
+msgid "Invalid column index (index exceeds permitted range)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParamColumnIndex\r
+#: Vcl/IBXConst.pas:97 \r
+msgid "Invalid parameter index (index exceeds permitted range)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDataConversion\r
+#: Vcl/IBXConst.pas:98 \r
+msgid "Invalid data conversion"
+msgstr "Conversión de dato no válida"
+
+#. Programmer's name for it: SColumnIsNotNullable\r
+#: Vcl/IBXConst.pas:99 \r
+msgid "Column cannot be set to null (%s)"
+msgstr ""
+
+#. Programmer's name for it: SBlobCannotBeRead\r
+#: Vcl/IBXConst.pas:100 \r
+msgid "Blob stream cannot be read"
+msgstr ""
+
+#. Programmer's name for it: SBlobCannotBeWritten\r
+#: Vcl/IBXConst.pas:101 \r
+msgid "Blob stream cannot be written"
+msgstr ""
+
+#. Programmer's name for it: SEmptyQuery\r
+#: Vcl/IBXConst.pas:102 \r
+msgid "Empty query"
+msgstr ""
+
+#. Programmer's name for it: SCannotOpenNonSQLSelect\r
+#: Vcl/IBXConst.pas:103 \r
+msgid "Cannot \"open\" a non-select statement. Use ExecQuery"
+msgstr ""
+
+#. Programmer's name for it: SNoFieldAccess\r
+#: Vcl/IBXConst.pas:104 \r
+msgid "No access to field \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SFieldReadOnly\r
+#: Vcl/IBXConst.pas:105 \r
+msgid "Field \"%s\" is read-only"
+msgstr ""
+
+#. Programmer's name for it: SFieldNotFound\r
+#: Vcl/IBXConst.pas:106 \r
+msgid "Field \"%s\" not found"
+msgstr "El campo \"%s\" no se ha encontrado"
+
+#. Programmer's name for it: SNotEditing\r
+#: Vcl/IBXConst.pas:107 \r
+msgid "Not in edit mode"
+msgstr "No está en modo de edición"
+
+#. Programmer's name for it: SCannotInsert\r
+#: Vcl/IBXConst.pas:108 \r
+msgid "Cannot insert into dataset. (No insert query)"
+msgstr ""
+
+#. Programmer's name for it: SCannotPost\r
+#: Vcl/IBXConst.pas:109 \r
+msgid "Cannot post. (No update/insert query)"
+msgstr ""
+
+#. Programmer's name for it: SCannotUpdate\r
+#: Vcl/IBXConst.pas:110 \r
+msgid "Cannot update. (No update query)"
+msgstr ""
+
+#. Programmer's name for it: SCannotDelete\r
+#: Vcl/IBXConst.pas:111 \r
+msgid "Cannot delete from dataset. (No delete query)"
+msgstr ""
+
+#. Programmer's name for it: SCannotRefresh\r
+#: Vcl/IBXConst.pas:112 \r
+msgid "Cannot refresh row. (No refresh query)"
+msgstr ""
+
+#. Programmer's name for it: SBufferNotSet\r
+#: Vcl/IBXConst.pas:113 \r
+msgid "Buffer not set"
+msgstr ""
+
+#. Programmer's name for it: SCircularReference\r
+#: Vcl/IBXConst.pas:114 \r
+msgid "Circular references not permitted"
+msgstr ""
+
+#. Programmer's name for it: SSQLParseError\r
+#: Vcl/IBXConst.pas:115 \r
+msgid ""
+"SQL Parse Error:\n"
+"\n"
+"%s"
+msgstr ""
+
+#. Programmer's name for it: SUserAbort\r
+#: Vcl/IBXConst.pas:116 \r
+msgid "User abort"
+msgstr ""
+
+#. Programmer's name for it: SDataSetUniDirectional\r
+#: Vcl/IBXConst.pas:117 \r
+msgid "Data set is uni-directional"
+msgstr ""
+
+#. Programmer's name for it: SCannotCreateSharedResource\r
+#: Vcl/IBXConst.pas:118 \r
+msgid "Cannot create shared resource. (Windows error %d)"
+msgstr ""
+
+#. Programmer's name for it: SWindowsAPIError\r
+#: Vcl/IBXConst.pas:119 \r
+msgid "Windows API error. (Windows error %d [$%.8x])"
+msgstr ""
+
+#. Programmer's name for it: SColumnListsDontMatch\r
+#: Vcl/IBXConst.pas:120 \r
+msgid "Column lists do not match"
+msgstr ""
+
+#. Programmer's name for it: SColumnTypesDontMatch\r
+#: Vcl/IBXConst.pas:121 \r
+msgid "Column types don't match. (From index: %d; To index: %d)"
+msgstr ""
+
+#. Programmer's name for it: SCantEndSharedTransaction\r
+#: Vcl/IBXConst.pas:123 \r
+msgid ""
+"Can't end a shared transaction unless it is forced and equal to the "
+"transaction's TimeoutAction"
+msgstr ""
+
+#. Programmer's name for it: SFieldUnsupportedType\r
+#: Vcl/IBXConst.pas:124 \r
+msgid "Unsupported Field Type"
+msgstr "Tipo de campo no soportado"
+
+#. Programmer's name for it: SCircularDataLink\r
+#: Vcl/IBXConst.pas:125 \r
+msgid "Circular DataLink Reference"
+msgstr ""
+
+#. Programmer's name for it: SEmptySQLStatement\r
+#: Vcl/IBXConst.pas:126 \r
+msgid "Empty SQL Statement"
+msgstr ""
+
+#. Programmer's name for it: SIsASelectStatement\r
+#: Vcl/IBXConst.pas:127 \r
+msgid "use Open for a Select Statement"
+msgstr ""
+
+#. Programmer's name for it: SRequiredParamNotSet\r
+#: Vcl/IBXConst.pas:128 \r
+msgid "Required Param value not set"
+msgstr ""
+
+#. Programmer's name for it: SNoStoredProcName\r
+#: Vcl/IBXConst.pas:129 \r
+msgid "No Stored Procedure Name assigned"
+msgstr ""
+
+#. Programmer's name for it: SIsAExecuteProcedure\r
+#: Vcl/IBXConst.pas:130 \r
+msgid "use ExecProc for Procedure; use TQuery for Select procedures"
+msgstr ""
+
+#. Programmer's name for it: SUpdateFailed\r
+#: Vcl/IBXConst.pas:131 \r
+msgid "Update Failed"
+msgstr "Fallo en la actualización"
+
+#. Programmer's name for it: SNotCachedUpdates\r
+#: Vcl/IBXConst.pas:132 \r
+msgid "CachedUpdates not enabled"
+msgstr ""
+
+#. Programmer's name for it: SNotLiveRequest\r
+#: Vcl/IBXConst.pas:133 \r
+msgid "Request is not live - cannot modify"
+msgstr ""
+
+#. Programmer's name for it: SNoProvider\r
+#: Vcl/IBXConst.pas:134 \r
+msgid "No Provider"
+msgstr "Proveedor no disponible"
+
+#. Programmer's name for it: SNoRecordsAffected\r
+#: Vcl/IBXConst.pas:135 \r
+msgid "No Records Affected"
+msgstr "No se han alterado los registros"
+
+#. Programmer's name for it: SNoTableName\r
+#: Vcl/IBXConst.pas:136 \r
+msgid "No Table Name assigned"
+msgstr "La propiedad TableName no tiene valor"
+
+#. Programmer's name for it: SCannotCreatePrimaryIndex\r
+#: Vcl/IBXConst.pas:137 \r
+msgid "Cannot Create Primary Index; are created automatically"
+msgstr ""
+
+#. Programmer's name for it: SCannotDropSystemIndex\r
+#: Vcl/IBXConst.pas:138 \r
+msgid "Cannot Drop System Index"
+msgstr ""
+
+#. Programmer's name for it: STableNameMismatch\r
+#: Vcl/IBXConst.pas:139 \r
+msgid "Table Name Mismatch"
+msgstr ""
+
+#. Programmer's name for it: SIndexFieldMissing\r
+#: Vcl/IBXConst.pas:140 \r
+msgid "Index Field Missing"
+msgstr "Inaccesible el campo '%s' del índice"
+
+#. Programmer's name for it: SInvalidCancellation\r
+#: Vcl/IBXConst.pas:141 \r
+msgid "Cannot Cancel events while processing"
+msgstr "No se puede cancelar los eventos mientras se procesa"
+
+#. Programmer's name for it: SInvalidEvent\r
+#: Vcl/IBXConst.pas:142 \r
+msgid "Invalid Event"
+msgstr "Evento no válido."
+
+#. Programmer's name for it: SMaximumEvents\r
+#: Vcl/IBXConst.pas:143 \r
+msgid "Exceded Maximum Event limits"
+msgstr ""
+
+#. Programmer's name for it: SNoEventsRegistered\r
+#: Vcl/IBXConst.pas:144 \r
+msgid "No Events Registered"
+msgstr ""
+
+#. Programmer's name for it: SInvalidQueueing\r
+#: Vcl/IBXConst.pas:145 \r
+msgid "Invalid Queueing"
+msgstr "Queueing no válido"
+
+#. Programmer's name for it: SInvalidRegistration\r
+#: Vcl/IBXConst.pas:146 \r
+msgid "Invalid Registration"
+msgstr "Acción de registrar no válido"
+
+#. Programmer's name for it: SInvalidBatchMove\r
+#: Vcl/IBXConst.pas:147 \r
+msgid "Invalid Batch Move"
+msgstr "Batch Move no válido"
+
+#. Programmer's name for it: SSQLDialectInvalid\r
+#: Vcl/IBXConst.pas:148 \r
+msgid "SQL Dialect Invalid"
+msgstr ""
+
+#. Programmer's name for it: SSPBConstantNotSupported\r
+#: Vcl/IBXConst.pas:149 \r
+msgid "SPB Constant Not supported"
+msgstr "Constante SPB no permitida"
+
+#. Programmer's name for it: SSPBConstantUnknown\r
+#: Vcl/IBXConst.pas:150 \r
+msgid "SPB Constant Unknown"
+msgstr ""
+
+#. Programmer's name for it: SServiceActive\r
+#: Vcl/IBXConst.pas:151 \r
+msgid "Cannot perform operation -- service is not attached"
+msgstr "No se puede ejecutar esta operación -- el servicio no está conectado"
+
+#. Programmer's name for it: SServiceInActive\r
+#: Vcl/IBXConst.pas:152 \r
+msgid "Cannot perform operation -- service is attached"
+msgstr "No se puede ejecutar esta operación -- el servicio está conectado"
+
+#. Programmer's name for it: SServerNameMissing\r
+#: Vcl/IBXConst.pas:153 \r
+msgid "Server Name Missing"
+msgstr "Se ha perdido el nombre del servidor"
+
+#. Programmer's name for it: SQueryParamsError\r
+#: Vcl/IBXConst.pas:154 \r
+msgid "Query Parameters missing or incorrect"
+msgstr ""
+
+#. Programmer's name for it: SStartParamsError\r
+#: Vcl/IBXConst.pas:155 \r
+msgid "start Parameters missing or incorrect"
+msgstr ""
+
+#. Programmer's name for it: SOutputParsingError\r
+#: Vcl/IBXConst.pas:156 \r
+msgid "Unexpected Output buffer value"
+msgstr ""
+
+#. Programmer's name for it: SUseSpecificProcedures\r
+#: Vcl/IBXConst.pas:157 \r
+msgid ""
+"Generic ServiceStart not applicable: Use Specific Procedures to set "
+"configuration params"
+msgstr ""
+
+#. Programmer's name for it: SSQLMonitorAlreadyPresent\r
+#: Vcl/IBXConst.pas:158 \r
+msgid "SQL Monitor Instance is already present"
+msgstr ""
+
+#. Programmer's name for it: SCantPrintValue\r
+#: Vcl/IBXConst.pas:159 \r
+msgid "Cannot print value"
+msgstr ""
+
+#. Programmer's name for it: SEOFReached\r
+#: Vcl/IBXConst.pas:160 \r
+msgid "SEOFReached"
+msgstr ""
+
+#. Programmer's name for it: SEOFInComment\r
+#: Vcl/IBXConst.pas:161 \r
+msgid "EOF in comment detected"
+msgstr ""
+
+#. Programmer's name for it: SEOFInString\r
+#: Vcl/IBXConst.pas:162 \r
+msgid "EOF in string detected"
+msgstr ""
+
+#. Programmer's name for it: SParamNameExpected\r
+#: Vcl/IBXConst.pas:163 \r
+msgid "Parameter name expected"
+msgstr ""
+
+#. Programmer's name for it: SSuccess\r
+#: Vcl/IBXConst.pas:164 \r
+msgid "Successful execution"
+msgstr ""
+
+#. Programmer's name for it: SDelphiException\r
+#: Vcl/IBXConst.pas:165 \r
+msgid "DelphiException %s"
+msgstr ""
+
+#. Programmer's name for it: SNoOptionsSet\r
+#: Vcl/IBXConst.pas:166 \r
+msgid "No Install Options selected"
+msgstr ""
+
+#. Programmer's name for it: SNoDestinationDirectory\r
+#: Vcl/IBXConst.pas:167 \r
+msgid "DestinationDirectory is not set"
+msgstr "El DestinationDirectory no está asignado"
+
+#. Programmer's name for it: SNosourceDirectory\r
+#: Vcl/IBXConst.pas:168 \r
+msgid "SourceDirectory is not set"
+msgstr "El SourceDirectory no está asignado"
+
+#. Programmer's name for it: SNoUninstallFile\r
+#: Vcl/IBXConst.pas:169 \r
+msgid "Uninstall File Name is not set"
+msgstr ""
+
+#. Programmer's name for it: SOptionNeedsClient\r
+#: Vcl/IBXConst.pas:170 \r
+msgid "%s component requires Client to function properly"
+msgstr ""
+
+#. Programmer's name for it: SOptionNeedsServer\r
+#: Vcl/IBXConst.pas:171 \r
+msgid "%s component requires Server to function properly"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOption\r
+#: Vcl/IBXConst.pas:172 \r
+msgid "Invalid option specified"
+msgstr "Se especificó una opción no válida"
+
+#. Programmer's name for it: SInvalidOnErrorResult\r
+#: Vcl/IBXConst.pas:173 \r
+msgid "Unexpected onError return value"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOnStatusResult\r
+#: Vcl/IBXConst.pas:174 \r
+msgid "Unexpected onStatus return value"
+msgstr ""
+
+#. Programmer's name for it: SInterbaseExpressVersion\r
+#: Vcl/IBXConst.pas:176 \r
+msgid "InterbaseExpress 4.3"
+msgstr ""
+
+#. Programmer's name for it: SEditSQL\r
+#: Vcl/IBXConst.pas:177 \r
+msgid "Edit SQL"
+msgstr ""
+
+#. Programmer's name for it: SDPBConstantUnknownEx\r
+#: Vcl/IBXConst.pas:178 \r
+msgid "DPB Constant (%s) is unknown"
+msgstr ""
+
+#. Programmer's name for it: STPBConstantUnknownEx\r
+#: Vcl/IBXConst.pas:179 \r
+msgid "TPB Constant (%s) is unknown"
+msgstr ""
+
+#. Programmer's name for it: SInterbaseExpressVersionEx\r
+#: Vcl/IBXConst.pas:180 \r
+msgid "InterbaseExpress %g"
+msgstr ""
+
+#. Programmer's name for it: SUnknownPlan\r
+#: Vcl/IBXConst.pas:181 \r
+msgid "Unknown Error - Can't retrieve plan"
+msgstr ""
+
+#. Programmer's name for it: SFieldSizeMismatch\r
+#: Vcl/IBXConst.pas:182 \r
+msgid "Size Mismatch - Field %s size is too small for data"
+msgstr ""
+
+#. Programmer's name for it: SEventAlreadyRegistered\r
+#: Vcl/IBXConst.pas:183 \r
+msgid "Events already registered"
+msgstr "Los eventos ya estaban registrados"
+
+#. Programmer's name for it: SStringTooLarge\r
+#: Vcl/IBXConst.pas:184 \r
+msgid ""
+"Trying to store a string of length %d into a field that can only contain %d"
+msgstr ""
+
+#. Programmer's name for it: SIBServiceEditor\r
+#: Vcl/IBXConst.pas:185 \r
+msgid "&Service Editor ..."
+msgstr "Editor del servicio..."
+
+#. Programmer's name for it: SIBSuccessConnect\r
+#: Vcl/IBXConst.pas:186 \r
+msgid "Successful Connection"
+msgstr "Conexión establecida"
+
+#. Programmer's name for it: SProviderNotExported\r
+#: Vcl/MidConst.pas:35 \r
+msgid "Provider not exported: %s"
+msgstr ""
+
+#. Programmer's name for it: SNoDataProvider\r
+#: Vcl/MidConst.pas:38 \r
+msgid "Missing data provider or data packet"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDataPacket\r
+#: Vcl/MidConst.pas:39 \r
+msgid "Invalid data packet"
+msgstr "Paquete de datos no válido"
+
+#. Programmer's name for it: SRefreshError\r
+#: Vcl/MidConst.pas:40 \r
+msgid "Must apply updates before refreshing data"
+msgstr ""
+
+#. Programmer's name for it: SProviderInvalid\r
+#: Vcl/MidConst.pas:41 \r
+msgid "Invalid provider. Provider was freed by the application server"
+msgstr ""
+
+#. Programmer's name for it: SServerNameBlank\r
+#: Vcl/MidConst.pas:42 \r
+msgid "Cannot connect, %s must contain a valid ServerName or ServerGUID"
+msgstr ""
+
+#. Programmer's name for it: SRepositoryIdBlank\r
+#: Vcl/MidConst.pas:43 \r
+msgid "Cannot connect, %s must contain a valid repository id"
+msgstr ""
+
+#. Programmer's name for it: SAggsGroupingLevel\r
+#: Vcl/MidConst.pas:44 \r
+msgid "Grouping level exceeds current index field count"
+msgstr ""
+
+#. Programmer's name for it: SAggsNoSuchLevel\r
+#: Vcl/MidConst.pas:45 \r
+msgid "Grouping level not defined"
+msgstr ""
+
+#. Programmer's name for it: SNoCircularReference\r
+#: Vcl/MidConst.pas:46 \r
+msgid "Circular provider references not allowed"
+msgstr ""
+
+#. Programmer's name for it: SErrorLoadingMidas\r
+#: Vcl/MidConst.pas:47 \r
+msgid "Error loading MIDAS.DLL"
+msgstr ""
+
+#. Programmer's name for it: SCannotCreateDataSet\r
+#: Vcl/MidConst.pas:48 \r
+msgid "No fields defined.  Cannot create dataset"
+msgstr ""
+
+#. Programmer's name for it: SFieldNameTooLarge\r
+#: Vcl/MidConst.pas:49 \r
+msgid "Fieldname %s exceeds %d chars"
+msgstr ""
+
+#. Programmer's name for it: SInvalidClone\r
+#: Vcl/MidConst.pas:50 \r
+msgid "CloneConnection invalid: distinct ClientDataSet descendents"
+msgstr ""
+
+#. Programmer's name for it: SSocketReadError\r
+#: Vcl/MidConst.pas:53 \r
+msgid "Error reading from socket"
+msgstr "Se ha producido un error leyendo desde el enchufe (socket)"
+
+#. Programmer's name for it: SInvalidProviderName\r
+#: Vcl/MidConst.pas:54 \r
+msgid "Provider name \"%s\" was not recognized by the server"
+msgstr ""
+
+#. Programmer's name for it: SBadVariantType\r
+#: Vcl/MidConst.pas:55 \r
+msgid "Unsupported variant type: %s"
+msgstr "Tipo de variante no soportado: %s"
+
+#. Programmer's name for it: SInvalidAction\r
+#: Vcl/MidConst.pas:56 \r
+msgid "Invalid action received: %d"
+msgstr "Se ha recibido una acción no válida: %d"
+
+#. Programmer's name for it: SNoParentConnection\r
+#: Vcl/MidConst.pas:57 \r
+msgid "ParentConnection is not assigned"
+msgstr "ParentConnection no está asignada"
+
+#. Programmer's name for it: SBlankChildName\r
+#: Vcl/MidConst.pas:58 \r
+msgid "ChildName cannot be blank"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResponse\r
+#: Vcl/MidConst.pas:61 \r
+msgid "Invalid response"
+msgstr "Respuesta no válida"
+
+#. Programmer's name for it: STooManyRecordsModified\r
+#: Vcl/MidConst.pas:63 \r
+msgid "Update affected more than 1 record."
+msgstr ""
+
+#. Programmer's name for it: SInvalidOptParamType\r
+#: Vcl/MidConst.pas:66 \r
+msgid "Value cannot be stored in an optional parameter"
+msgstr ""
+
+#. Programmer's name for it: SConstraintFailed\r
+#: Vcl/MidConst.pas:68 \r
+msgid "Record or field constraint failed."
+msgstr ""
+
+#. Programmer's name for it: SField\r
+#: Vcl/MidConst.pas:69 \r
+msgid "Field"
+msgstr ""
+
+#. Programmer's name for it: SReadOnlyProvider\r
+#: Vcl/MidConst.pas:70 \r
+msgid "Cannot apply updates to a ReadOnly provider"
+msgstr ""
+
+#. Programmer's name for it: SNoKeySpecified\r
+#: Vcl/MidConst.pas:71 \r
+msgid "Unable to find record.  No key specified"
+msgstr ""
+
+#. Programmer's name for it: SFieldNameTooLong\r
+#: Vcl/MidConst.pas:73 \r
+msgid ""
+"Field name cannot be longer then %d characters.  Try setting ObjectView to "
+"True on the dataset"
+msgstr ""
+
+#. Programmer's name for it: SNoDataSets\r
+#: Vcl/MidConst.pas:74 \r
+msgid "Cannot resolve to dataset when using nested datasets or references"
+msgstr ""
+
+#. Programmer's name for it: SRecConstFail\r
+#: Vcl/MidConst.pas:75 \r
+msgid "Preparation of record constraint failed with error \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SFieldConstFail\r
+#: Vcl/MidConst.pas:76 \r
+msgid "Preparation of field constraint failed with error \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SDefExprFail\r
+#: Vcl/MidConst.pas:77 \r
+msgid "Preparation of default expression failed with error \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SArrayElementError\r
+#: Vcl/MidConst.pas:78 \r
+msgid "Array elements of type %s are not supported"
+msgstr "El tipo %s de elementos de matriz no son permitidos"
+
+#. Programmer's name for it: SNoTableName\r
+#: Vcl/MidConst.pas:79 \r
+msgid "Unable to resolve records.  Table name not found."
+msgstr ""
+
+#. Programmer's name for it: SNoEditsAllowed\r
+#: Vcl/MidConst.pas:80 \r
+msgid "Modifications are not allowed"
+msgstr "No se permiten las modificaciones"
+
+#. Programmer's name for it: SNoDeletesAllowed\r
+#: Vcl/MidConst.pas:81 \r
+msgid "Deletes are not allowed"
+msgstr "No se permite eliminar"
+
+#. Programmer's name for it: SNoInsertsAllowed\r
+#: Vcl/MidConst.pas:82 \r
+msgid "Inserts are not allowed"
+msgstr "No se permite insertar"
+
+#. Programmer's name for it: SCannotChangeCommandText\r
+#: Vcl/MidConst.pas:83 \r
+msgid "CommandText changes are not allowed"
+msgstr ""
+
+#. Programmer's name for it: SAggregatesActive\r
+#: Vcl/MidConst.pas:84 \r
+msgid "Operation not allowed with aggregates active"
+msgstr ""
+
+#. Programmer's name for it: SNoServers\r
+#: Vcl/MidConst.pas:87 \r
+msgid "No server available"
+msgstr "Servidor no disponible"
+
+#. Programmer's name for it: SConnectionMissing\r
+#: Vcl/MidConst.pas:91 \r
+msgid "Requires Connection before opening"
+msgstr ""
+
+#. Programmer's name for it: SNoCircularConnection\r
+#: Vcl/MidConst.pas:92 \r
+msgid "Circular reference to Connection not allowed"
+msgstr ""
+
+#. Programmer's name for it: SReturnError\r
+#: Vcl/MidConst.pas:95 \r
+msgid "Expected return value not received"
+msgstr ""
+
+#. Programmer's name for it: SNoWinSock2\r
+#: Vcl/MidConst.pas:96 \r Vcl/ScktCnst.pas:36
+msgid "WinSock 2 must be installed to use the socket connection"
+msgstr ""
+
+#. Programmer's name for it: SURLRequired\r
+#: Vcl/MidConst.pas:99 \r
+msgid "URL required"
+msgstr "Se requiere URL "
+
+#. Programmer's name for it: SDefaultURL\r
+#: Vcl/MidConst.pas:100 \r
+msgid "http://server.company.com/scripts/httpsrvr.dll"
+msgstr ""
+
+#. Programmer's name for it: SInvalidURL\r
+#: Vcl/MidConst.pas:101 \r
+msgid ""
+"URL must be in the form \"http://server.company.com/scripts/httpsrvr.dll\""
+msgstr ""
+
+#. Programmer's name for it: SServerIsBusy\r
+#: Vcl/MidConst.pas:102 \r
+msgid "Server is busy"
+msgstr ""
+
+#. Programmer's name for it: SObjectNotAvailable\r
+#: Vcl/MidConst.pas:104 \r
+msgid "Object not available: %s"
+msgstr "Objecto no disponible: %s"
+
+#. Programmer's name for it: SMasterNotOpen\r
+#: Vcl/MidConst.pas:107 \r
+msgid "Cannot open detail table with master closed"
+msgstr "No se puede abrir una tabla de detalle estando la maestra cerrada"
+
+#. Programmer's name for it: SBadPropValue\r
+#: Vcl/OleConst.pas:15 \r
+msgid "'%s' is not a valid property value"
+msgstr "'%s' no es un valor de la propiedad válido"
+
+#. Programmer's name for it: SCannotActivate\r
+#: Vcl/OleConst.pas:16 \r
+msgid "OLE control activation failed"
+msgstr "Falló la activación del control OLE"
+
+#. Programmer's name for it: SNoWindowHandle\r
+#: Vcl/OleConst.pas:17 \r
+msgid "Could not obtain OLE control window handle"
+msgstr "No pudo obtenerse el manejador (handle) de ventana del control OLE"
+
+#. Programmer's name for it: SOleError\r
+#: Vcl/OleConst.pas:18 \r Rtl/Common/ComConst.pas:15
+msgid "OLE error %.8x"
+msgstr "Hay un error OLE %.8x"
+
+#. Programmer's name for it: SVarNotObject\r
+#: Vcl/OleConst.pas:19 \r
+msgid "Variant does not reference an OLE object"
+msgstr "La variable no hace referencia a un objeto OLE"
+
+#. Programmer's name for it: SVarNotAutoObject\r
+#. Programmer's name for it: SVarNotObject\r
+#: Vcl/OleConst.pas:20 \r Rtl/Common/ComConst.pas:21
+msgid "Variant does not reference an automation object"
+msgstr "La variante no hace referencia a un objeto de automatización"
+
+#. Programmer's name for it: SNoMethod\r
+#: Vcl/OleConst.pas:21 \r
+msgid "Method '%s' not supported by OLE object"
+msgstr "El método '%s' no es soportado por un objeto OLE"
+
+#. Programmer's name for it: SLinkProperties\r
+#: Vcl/OleConst.pas:22 \r
+msgid "Link Properties"
+msgstr "Propiedades del enlace"
+
+#. Programmer's name for it: SInvalidLinkSource\r
+#: Vcl/OleConst.pas:23 \r
+msgid "Cannot link to an invalid source."
+msgstr "No puede enlazarse a una fuente no válida"
+
+#. Programmer's name for it: SCannotBreakLink\r
+#: Vcl/OleConst.pas:24 \r
+msgid "Break link operation is not supported."
+msgstr "La operación de rotura de enlace no es soportada"
+
+#. Programmer's name for it: SLinkedObject\r
+#: Vcl/OleConst.pas:25 \r
+msgid "Linked %s"
+msgstr "Enlazado %s"
+
+#. Programmer's name for it: SEmptyContainer\r
+#: Vcl/OleConst.pas:26 \r
+msgid "Operation not allowed on an empty OLE container"
+msgstr "Operación no permitida en un contenedor OLE vacío"
+
+#. Programmer's name for it: SInvalidVerb\r
+#: Vcl/OleConst.pas:27 \r
+msgid "Invalid object verb"
+msgstr "Verbo de objeto no válido"
+
+#. Programmer's name for it: SPropDlgCaption\r
+#: Vcl/OleConst.pas:28 \r
+msgid "%s Properties"
+msgstr "Propiedades %s"
+
+#. Programmer's name for it: SInvalidLicense\r
+#: Vcl/OleConst.pas:30 \r
+msgid "License information for %s is invalid"
+msgstr "La información de licencia para %s no es válida"
+
+#. Programmer's name for it: SNotLicensed\r
+#: Vcl/OleConst.pas:31 \r
+msgid ""
+"License information for %s not found. You cannot use this control in design "
+"mode"
+msgstr ""
+"Información de licencia para %s no encontrada. No se puede usar este control "
+"en modo de diseño"
+
+#. Programmer's name for it: sNoRunningObject\r
+#: Vcl/OleConst.pas:32 \r
+msgid ""
+"Unable to retrieve a pointer to a running object registered with OLE for %s/%"
+"s"
+msgstr ""
+"No se puede recuperar un puntero a un objeto que se está ejecutando, "
+"registrado con OLE por %s/%s"
+
+#. Programmer's name for it: SServiceOnly\r
+#: Vcl/ScktCnst.pas:29 \r
+msgid "The Socket Server can only be run as a service on NT 3.51 and prior"
+msgstr ""
+
+#. Programmer's name for it: SErrClose\r
+#: Vcl/ScktCnst.pas:30 \r
+msgid "Cannot exit when there are active connections. Kill connections?"
+msgstr ""
+
+#. Programmer's name for it: SErrChangeSettings\r
+#: Vcl/ScktCnst.pas:31 \r
+msgid ""
+"Cannot change settings when there are active connections. Kill connections?"
+msgstr ""
+"No se pueden cambiar la configuración cuando estan activas las conexiones. "
+"¿Desconectarlas?"
+
+#. Programmer's name for it: SQueryDisconnect\r
+#: Vcl/ScktCnst.pas:32 \r
+msgid "Disconnecting clients can cause application errors. Continue?"
+msgstr ""
+
+#. Programmer's name for it: SOpenError\r
+#: Vcl/ScktCnst.pas:33 \r
+msgid "Error opening port %d with error: %s"
+msgstr ""
+
+#. Programmer's name for it: SNotShown\r
+#: Vcl/ScktCnst.pas:35 \r
+msgid "(Not Shown)"
+msgstr ""
+
+#. Programmer's name for it: SStatusline\r
+#: Vcl/ScktCnst.pas:37 \r
+msgid "%d current connections"
+msgstr "Hay actualmente %d conexiones"
+
+#. Programmer's name for it: SAlreadyRunning\r
+#: Vcl/ScktCnst.pas:38 \r
+msgid "The Socket Server is already running"
+msgstr "El Servidor del enchufe (socket) ya estaba funcionando"
+
+#. Programmer's name for it: SNotUntilRestart\r
+#: Vcl/ScktCnst.pas:39 \r
+msgid "This change will not take affect until the Socket Server is restarted"
+msgstr ""
+
+#. Programmer's name for it: SMonitorActive\r
+#: Vcl/SqlConst.pas:57 \r
+msgid "Cannot change connection on Active Monitor"
+msgstr "No se puede cambiar la conexión al Monitor Activo"
+
+#. Programmer's name for it: SMissingConnection\r
+#: Vcl/SqlConst.pas:58 \r
+msgid "Missing SQLConnection property"
+msgstr "Propiedad SQLConnection sin valor"
+
+#. Programmer's name for it: SDatabaseOpen\r
+#: Vcl/SqlConst.pas:59 \r
+msgid "Cannot perform this operation on an open connection"
+msgstr "No se puede ejecutar esta operación en una conexión abierta"
+
+#. Programmer's name for it: SDatabaseClosed\r
+#: Vcl/SqlConst.pas:60 \r
+msgid "Cannot perform this operation on a closed connection"
+msgstr "No se puede ejecutar esta operación en una conexión cerrada"
+
+#. Programmer's name for it: SMissingSQLConnection\r
+#: Vcl/SqlConst.pas:61 \r
+msgid "SQLConnection property required for this operation"
+msgstr "Se requiere la propiedad SQLConnection para esta operación"
+
+#. Programmer's name for it: SConnectionNameMissing\r
+#: Vcl/SqlConst.pas:62 \r
+msgid "Connection name missing"
+msgstr "Nombre de la conexión ausente"
+
+#. Programmer's name for it: SNoSqlStatement\r
+#: Vcl/SqlConst.pas:70 \r
+msgid "Missing query, table name or procedure name"
+msgstr "Consulta, nombre de la tabla o nombre del procedimiento sin valor"
+
+#. Programmer's name for it: SMissingDataBaseName\r
+#: Vcl/SqlConst.pas:73 \r
+msgid "Missing Database property"
+msgstr "Propiedad Database sin valor"
+
+#. Programmer's name for it: SMissingDriverName\r
+#: Vcl/SqlConst.pas:75 \r
+msgid "Missing DriverName property"
+msgstr "Propiedad DriverName sin valor"
+
+#. Programmer's name for it: SPrepareError\r
+#: Vcl/SqlConst.pas:76 \r
+msgid "Unable to execute Query"
+msgstr "No se puede ejecutar la consulta"
+
+#. Programmer's name for it: SObjectNameError\r
+#: Vcl/SqlConst.pas:77 \r
+msgid "Table/Procedure not found"
+msgstr "No se encontró tabla/procedimiento"
+
+#. Programmer's name for it: SNoActiveTrans\r
+#: Vcl/SqlConst.pas:79 \r
+msgid "There is no active transaction"
+msgstr "No hay ninguna transacción activa"
+
+#. Programmer's name for it: SActiveTrans\r
+#: Vcl/SqlConst.pas:80 \r
+msgid "A transaction is already active"
+msgstr "Una transacción ya estaba activa"
+
+#. Programmer's name for it: SDllLoadError\r
+#: Vcl/SqlConst.pas:81 \r
+msgid "Unable to Load %s"
+msgstr "No se puede cargar %s"
+
+#. Programmer's name for it: SDllProcLoadError\r
+#: Vcl/SqlConst.pas:82 \r
+msgid "Unable to Find Procedure %s"
+msgstr "No se puede encontrar el procedimiento %s"
+
+#. Programmer's name for it: SConnectionEditor\r
+#: Vcl/SqlConst.pas:83 \r
+msgid "&Edit Connection Properties"
+msgstr "Edición de las propiedades de conexión"
+
+#. Programmer's name for it: SCommandTextEditor\r
+#: Vcl/SqlConst.pas:84 \r
+msgid "&Edit CommandText"
+msgstr "&Editar CommandText"
+
+#. Programmer's name for it: SMissingDLLName\r
+#: Vcl/SqlConst.pas:85 \r
+msgid "DLL/Shared Library Name not Set"
+msgstr "DLL/Nombre de Librería Compartida no especificada"
+
+#. Programmer's name for it: SMissingDriverRegFile\r
+#: Vcl/SqlConst.pas:86 \r
+msgid "Driver/Connection Registry File '%s' not found"
+msgstr ""
+
+#. Programmer's name for it: STableNameNotFound\r
+#: Vcl/SqlConst.pas:87 \r
+msgid "Cannot find TableName in CommandText"
+msgstr "No es posible encontrar TableName en CommandText"
+
+#. Programmer's name for it: SNoCursor\r
+#: Vcl/SqlConst.pas:88 \r
+msgid "Cursor not returned from Query"
+msgstr "Cursor no devuelto por la consulta"
+
+#. Programmer's name for it: SMetaDataOpenError\r
+#: Vcl/SqlConst.pas:89 \r
+msgid "Unable to Open Metadata"
+msgstr "No se puede abrir Metadata"
+
+#. Programmer's name for it: SErrorMappingError\r
+#: Vcl/SqlConst.pas:90 \r
+msgid "SQL Error: Error mapping failed"
+msgstr "Error de SQL: Fallo al mapear"
+
+#. Programmer's name for it: SStoredProcsNotSupported\r
+#: Vcl/SqlConst.pas:91 \r
+msgid "Stored Procedures not supported by '%s' Server"
+msgstr ""
+
+#. Programmer's name for it: SDBXUNKNOWNERROR\r
+#: Vcl/SqlConst.pas:92 \r
+msgid "DBX Error: No Mapping for Error Code Found"
+msgstr "Error DBX: Mapeo para el Código de Error no encontrado"
+
+#. Programmer's name for it: SDBXNOCONNECTION\r
+#. Programmer's name for it: SDBXNOCOMMAND\r
+#. Programmer's name for it: SDBXNOCURSOR\r
+#: Vcl/SqlConst.pas:93 \r Vcl/SqlConst.pas:95 Vcl/SqlConst.pas:96
+msgid "DBX Error: Connection not found, error message cannot be retrieved"
+msgstr ""
+"Error DBX: Conexión no encontrada, no es posible recuperar el mensaje de "
+"error"
+
+#. Programmer's name for it: SDBXNOMETAOBJECT\r
+#: Vcl/SqlConst.pas:94 \r
+msgid "DBX Error: MetadataObject not found, error message cannot be retrieved"
+msgstr ""
+"Error DBX: MetadataObject no encontrado, no es posible recuperar el mensaje "
+"de error"
+
+#. Programmer's name for it: SNOMEMORY\r
+#: Vcl/SqlConst.pas:97 \r
+msgid "DBX Error: Insufficient Memory for Operation"
+msgstr "Error dbExpress: Memoria insuficiente para la operación"
+
+#. Programmer's name for it: SINVALIDFLDTYPE\r
+#: Vcl/SqlConst.pas:98 \r
+msgid "DBX Error: Invalid Field Type"
+msgstr "Error dbExpress: Tipo de Campo no válido"
+
+#. Programmer's name for it: SINVALIDHNDL\r
+#: Vcl/SqlConst.pas:99 \r
+msgid "DBX Error: Invalid Handle"
+msgstr "Error dbExpress: Handle no válido"
+
+#. Programmer's name for it: SINVALIDTIME\r
+#: Vcl/SqlConst.pas:100 \r
+msgid "DBX Error: Invalid Time"
+msgstr "Error dbExpress: Hora no válida"
+
+#. Programmer's name for it: SNOTSUPPORTED\r
+#: Vcl/SqlConst.pas:101 \r
+msgid "DBX Error: Operation Not Supported"
+msgstr "Error DBX: Operación no soportada"
+
+#. Programmer's name for it: SINVALIDXLATION\r
+#: Vcl/SqlConst.pas:102 \r
+msgid "DBX Error: Invalid Translation"
+msgstr "Error dbExpress: Datos de traducción no válidos"
+
+#. Programmer's name for it: SINVALIDPARAM\r
+#: Vcl/SqlConst.pas:103 \r
+msgid "DBX Error: Invalid Parameter"
+msgstr "Error dbExpress: Parámetro no válido"
+
+#. Programmer's name for it: SOUTOFRANGE\r
+#: Vcl/SqlConst.pas:104 \r
+msgid "DBX Error: Argument out of Range"
+msgstr "Error dbExpress: Argumento fuera de rango"
+
+#. Programmer's name for it: SSQLPARAMNOTSET\r
+#: Vcl/SqlConst.pas:105 \r
+msgid "DBX Error: Parameter Not Set"
+msgstr "Error dbExpress: Parámetro sin asignar"
+
+#. Programmer's name for it: SEOF\r
+#: Vcl/SqlConst.pas:106 \r
+msgid "DBX Error: Result set at EOF"
+msgstr "Error dbExpress: Resultado asignado a EOF"
+
+#. Programmer's name for it: SINVALIDUSRPASS\r
+#: Vcl/SqlConst.pas:107 \r
+msgid "DBX Error: Invalid Username/Password"
+msgstr "Error dbExpress: Nombre de usuario/Contraseña no válida"
+
+#. Programmer's name for it: SINVALIDPRECISION\r
+#: Vcl/SqlConst.pas:108 \r
+msgid "DBX Error: Invalid Precision"
+msgstr "Error dbExpress: Precisión no válida"
+
+#. Programmer's name for it: SINVALIDLEN\r
+#: Vcl/SqlConst.pas:109 \r
+msgid "DBX Error: Invalid Length"
+msgstr "Error dbExpress: Longitud no válida"
+
+#. Programmer's name for it: SINVALIDXISOLEVEL\r
+#: Vcl/SqlConst.pas:110 \r
+msgid "DBX Error: Invalid Transaction Isolation Level"
+msgstr "Error dbExpress: Nivel de Aislamiento de Transacción no válido"
+
+#. Programmer's name for it: SINVALIDTXNID\r
+#: Vcl/SqlConst.pas:111 \r
+msgid "DBX Error: Invalid Transaction ID"
+msgstr "Error dbExpress: Identificador de Transacción no válido"
+
+#. Programmer's name for it: SDUPLICATETXNID\r
+#: Vcl/SqlConst.pas:112 \r
+msgid "DBX Error: Duplicate Transaction ID"
+msgstr "Error dbExpress: Identificador de Transacción duplicado"
+
+#. Programmer's name for it: SDRIVERRESTRICTED\r
+#: Vcl/SqlConst.pas:113 \r
+msgid "dbExpress: Application is not licensed to use this feature"
+msgstr ""
+"Error dbExpress: La Aplicación no tiene licencia para utilizar esta "
+"característica"
+
+#. Programmer's name for it: SLOCALTRANSACTIVE\r
+#: Vcl/SqlConst.pas:114 \r
+msgid "DBX Error: Local Transaction already active"
+msgstr "Error dbExpress: Ya hay activa una Transacción Local"
+
+#. Programmer's name for it: SMultiConnNotSupported\r
+#: Vcl/SqlConst.pas:115 \r
+msgid "Multiple Connections not supported by %s driver"
+msgstr "Conexiones múltiples no soportadas por el driver %s"
+
+#. Programmer's name for it: SConfFileMoveError\r
+#: Vcl/SqlConst.pas:116 \r
+msgid "Unable to move %s to %s"
+msgstr "No se puede mover %s a %s"
+
+#. Programmer's name for it: SMissingConfFile\r
+#: Vcl/SqlConst.pas:117 \r
+msgid "Configuration file %s not found"
+msgstr "Configuración de archivo %s no encontrada"
+
+#. Programmer's name for it: SObjectViewNotTrue\r
+#: Vcl/SqlConst.pas:118 \r
+msgid "ObjectView must be True for Table with Object fields"
+msgstr "ObjectView debe ser True para una Tabla con campos Object"
+
+#. Programmer's name for it: SDriverNotInConfigFile\r
+#: Vcl/SqlConst.pas:119 \r
+msgid "Driver (%s) not found in Cfg file (%s)"
+msgstr "Driver (%s) no encontrado en archivo Cfg (%s)"
+
+#. Programmer's name for it: SObjectTypenameRequired\r
+#: Vcl/SqlConst.pas:120 \r
+msgid "Object type name required as parameter value"
+msgstr "Nombre de tipo de Objeto requerido como valor de parámetro"
+
+#. used in SqlReg.pas\r
+#: Vcl/SqlConst.pas:123 \r
+msgid "Text files (*.txt)|*.txt|All files (*.*)|*.*"
+msgstr "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"
+
+#. Programmer's name for it: SLogFileFilter\r
+#: Vcl/SqlConst.pas:124 \r
+msgid "Log files (*.log)"
+msgstr "Archivos de diario (*.log)"
+
+#. Programmer's name for it: SDataBindings\r
+#: Vcl/VDBConsts.pas:41 \r
+msgid "Data Bindings..."
+msgstr "Enlazador de datos..."
+
+#. Programmer's name for it: SCreateRegKeyError\r
+#: Rtl/Common/ComConst.pas:14 \r
+msgid "Error creating system registry entry"
+msgstr "Se ha producido un error al crear la entrada del registro del sistema"
+
+#. Programmer's name for it: SObjectFactoryMissing\r
+#: Rtl/Common/ComConst.pas:16 \r
+msgid "Object factory for class %s missing"
+msgstr ""
+
+#. Programmer's name for it: STypeInfoMissing\r
+#: Rtl/Common/ComConst.pas:17 \r
+msgid "Type information missing for class %s"
+msgstr ""
+
+#. Programmer's name for it: SBadTypeInfo\r
+#: Rtl/Common/ComConst.pas:18 \r
+msgid "Incorrect type information for class %s"
+msgstr ""
+
+#. Programmer's name for it: SDispIntfMissing\r
+#: Rtl/Common/ComConst.pas:19 \r
+msgid "Dispatch interface missing from class %s"
+msgstr ""
+
+#. Programmer's name for it: SNoMethod\r
+#: Rtl/Common/ComConst.pas:20 \r
+msgid "Method '%s' not supported by automation object"
+msgstr ""
+
+#. Programmer's name for it: STooManyParams\r
+#: Rtl/Common/ComConst.pas:22 \r
+msgid "Dispatch methods do not support more than 64 parameters"
+msgstr ""
+
+#. Programmer's name for it: SDCOMNotInstalled\r
+#: Rtl/Common/ComConst.pas:23 \r
+msgid "DCOM not installed"
+msgstr "No está instalado DCOM "
+
+#. Programmer's name for it: SDAXError\r
+#: Rtl/Common/ComConst.pas:24 \r
+msgid "DAX Error"
+msgstr "Error DAX"
+
+#. Programmer's name for it: SAutomationWarning\r
+#: Rtl/Common/ComConst.pas:26 \r
+msgid "COM Server Warning"
+msgstr ""
+
+#. Programmer's name for it: SNoCloseActiveServer1\r
+#: Rtl/Common/ComConst.pas:29 \r
+msgid ""
+"There are still active COM objects in this application.  One or more clients "
+"may have references to these objects, so manually closing "
+msgstr ""
+
+#. Programmer's name for it: SNoCloseActiveServer2\r
+#: Rtl/Common/ComConst.pas:32 \r
+msgid ""
+"this application may cause those client application(s) to fail.\n"
+"\n"
+"Are you sure you want to close this application?"
+msgstr ""
+
+#. Programmer's name for it: hNoTableOfContents\r
+#: Rtl/Common/HelpIntfs.pas:252 \r
+msgid "Unable to find a Table Of Contents"
+msgstr "No se puede encontrar la tabla de contenidos"
+
+#. Programmer's name for it: hNothingFound\r
+#: Rtl/Common/HelpIntfs.pas:253 \r
+msgid "No help found for %s"
+msgstr ""
+
+#. Programmer's name for it: hNoContext\r
+#: Rtl/Common/HelpIntfs.pas:254 \r
+msgid "No context-sensitive help installed"
+msgstr ""
+
+#. Programmer's name for it: hNoTopics\r
+#: Rtl/Common/HelpIntfs.pas:255 \r
+msgid "No topic-based help system installed"
+msgstr ""
+
+#. Programmer's name for it: SBucketListLocked\r
+#: Rtl/Common/RTLConsts.pas:17 \r
+msgid "List is locked during an active ForEach"
+msgstr "La lista está bloqueada durante un ForEach activo"
+
+#. Programmer's name for it: SCheckSynchronizeError\r
+#: Rtl/Common/RTLConsts.pas:20 \r
+msgid "CheckSynchronize called from thread $%x, which is NOT the main thread"
+msgstr ""
+"Llamada de CheckSynchronize desde el hilo (thread) $%x, que no es el hilo "
+"principal"
+
+#. Programmer's name for it: SDelimiterQuoteCharError\r
+#: Rtl/Common/RTLConsts.pas:22 \r
+msgid "Delimiter and QuoteChar properties cannot have the same value"
+msgstr "Las propiedades Delimiter y QuoteChar no pueden tener el mismo valor"
+
+#. Programmer's name for it: SItemNotFound\r
+#: Rtl/Common/RTLConsts.pas:56 \r
+msgid "Item not found ($0%x)"
+msgstr "No se ha encontrado el elemento ($0%x) "
+
+#. Programmer's name for it: SNoComSupport\r
+#: Rtl/Common/RTLConsts.pas:64 \r
+msgid "%s has not been registered as a COM class"
+msgstr "%s no es una clase COM registrada"
+
+#. Programmer's name for it: SComponentNameTooLong\r
+#: Rtl/Common/RTLConsts.pas:68 \r
+msgid "Component name '%s' exceeds 64 character limit"
+msgstr "El nombre del componente '%s' excede el límite de los 64 caracteres"
+
+#. Programmer's name for it: SRegCreateFailed\r
+#: Rtl/Common/RTLConsts.pas:73 \r
+msgid "Failed to create key %s"
+msgstr "Se ha producido un error al crear la llave %s"
+
+#. Programmer's name for it: SRegGetDataFailed\r
+#: Rtl/Common/RTLConsts.pas:74 \r
+msgid "Failed to get data for '%s'"
+msgstr "Se ha producido un error al obtener el dato para '%s'"
+
+#. Programmer's name for it: SRegSetDataFailed\r
+#: Rtl/Common/RTLConsts.pas:76 \r
+msgid "Failed to set data for '%s'"
+msgstr "Se ha producido un error al asignar el dato para '%s'"
+
+#. Programmer's name for it: SSeekNotImplemented\r
+#: Rtl/Common/RTLConsts.pas:78 \r
+msgid "%s.Seek not implemented"
+msgstr "%s.Seek no implementado"
+
+#. Programmer's name for it: SSortedListError\r
+#: Rtl/Common/RTLConsts.pas:79 \r
+msgid "Operation not allowed on sorted list"
+msgstr "Operación no permitida en una lista ordenada"
+
+#. Programmer's name for it: SUnknownGroup\r
+#: Rtl/Common/RTLConsts.pas:84 \r
+msgid "%s not in a class registration group"
+msgstr "%s no en un grupo de registro de clase"
+
+#. Programmer's name for it: SUnknownProperty\r
+#: Rtl/Common/RTLConsts.pas:85 \r
+msgid "Property %s does not exist"
+msgstr "La propiedad %s no existe"
+
+#. Programmer's name for it: SStreamSetSize\r
+#: Rtl/Common/RTLConsts.pas:87 \r
+msgid "Stream.SetSize failure"
+msgstr "Se ha producido un error al asignar el tamaño del flujo (stream)"
+
+#. Programmer's name for it: SThreadCreateError\r
+#: Rtl/Common/RTLConsts.pas:88 \r
+msgid "Thread creation error: %s"
+msgstr "Hay un error de creación de hilo (thread): %s"
+
+#. Programmer's name for it: SThreadError\r
+#: Rtl/Common/RTLConsts.pas:89 \r
+msgid "Thread Error: %s (%d)"
+msgstr "Hay un error de hilo (thread): %s (%d)"
+
+#. Programmer's name for it: SInvalidDateDay\r
+#: Rtl/Common/RTLConsts.pas:91 \r
+msgid "(%d, %d) is not a valid DateDay pair"
+msgstr "(%d, %d) no es una pareja DateDay válida "
+
+#. Programmer's name for it: SInvalidDateWeek\r
+#: Rtl/Common/RTLConsts.pas:92 \r
+msgid "(%d, %d, %d) is not a valid DateWeek triplet"
+msgstr "(%d, %d, %d) no es un triplete de DateWeek válido"
+
+#. Programmer's name for it: SInvalidDateMonthWeek\r
+#: Rtl/Common/RTLConsts.pas:93 \r
+msgid "(%d, %d, %d, %d) is not a valid DateMonthWeek quad"
+msgstr "(%d, %d, %d, %d) no es un cuarteto de DateMonthWeek válido"
+
+#. Programmer's name for it: SInvalidDayOfWeekInMonth\r
+#: Rtl/Common/RTLConsts.pas:94 \r
+msgid "(%d, %d, %d, %d) is not a valid DayOfWeekInMonth quad"
+msgstr "(%d, %d, %d, %d) no es un cuarteto de DayOfWeekInMonth válido"
+
+#. Programmer's name for it: SInvalidJulianDate\r
+#: Rtl/Common/RTLConsts.pas:95 \r
+msgid "%f Julian cannot be represented as a DateTime"
+msgstr "La fecha juliana %f no puede representarse como un DateTime"
+
+#. Programmer's name for it: SMissingDateTimeField\r
+#: Rtl/Common/RTLConsts.pas:96 \r
+msgid "?"
+msgstr ""
+
+#. Programmer's name for it: SConvIncompatibleTypes2\r
+#: Rtl/Common/RTLConsts.pas:98 \r Rtl/Sys/SysConst.pas:107
+msgid "Incompatible conversion types [%s, %s]"
+msgstr "Conversión de tipos [%s, %s] incompatible"
+
+#. Programmer's name for it: SConvIncompatibleTypes3\r
+#: Rtl/Common/RTLConsts.pas:99 \r Rtl/Sys/SysConst.pas:108
+msgid "Incompatible conversion types [%s, %s, %s]"
+msgstr "Conversión de tipos [%s, %s, %s] incompatible"
+
+#. Programmer's name for it: SConvIncompatibleTypes4\r
+#: Rtl/Common/RTLConsts.pas:100 \r Rtl/Sys/SysConst.pas:109
+msgid "Incompatible conversion types [%s - %s, %s - %s]"
+msgstr "Conversión de tipos [%s - %s, %s - %s] incompatible"
+
+#. Programmer's name for it: SConvUnknownType\r
+#: Rtl/Common/RTLConsts.pas:101 \r Rtl/Sys/SysConst.pas:110
+msgid "Unknown conversion type %s"
+msgstr "Conversión del tipo %s desconocida"
+
+#. Programmer's name for it: SConvDuplicateType\r
+#: Rtl/Common/RTLConsts.pas:102 \r
+msgid "Conversion type (%s) already registered in %s"
+msgstr "La conversión del tipo (%s) ya estaba registrada en %s"
+
+#. Programmer's name for it: SConvUnknownFamily\r
+#: Rtl/Common/RTLConsts.pas:103 \r Rtl/Sys/SysConst.pas:112
+msgid "Unknown conversion family %s"
+msgstr "Familia de conversión (%s) desconocida"
+
+#. Programmer's name for it: SConvDuplicateFamily\r
+#: Rtl/Common/RTLConsts.pas:104 \r Rtl/Sys/SysConst.pas:113
+msgid "Conversion family (%s) already registered"
+msgstr "La familia de conversión (%s) ya está registrada"
+
+#. Programmer's name for it: SConvUnknownDescription\r
+#: Rtl/Common/RTLConsts.pas:105 \r Rtl/Sys/SysConst.pas:114
+msgid "[%.8x]"
+msgstr ""
+
+#. Programmer's name for it: SConvIllegalType\r
+#: Rtl/Common/RTLConsts.pas:106 \r Rtl/Sys/SysConst.pas:115
+msgid "Illegal type"
+msgstr "Tipo ilegal"
+
+#. Programmer's name for it: SConvIllegalFamily\r
+#: Rtl/Common/RTLConsts.pas:107 \r Rtl/Sys/SysConst.pas:116
+msgid "Illegal family"
+msgstr "Familia ilegal"
+
+#. Programmer's name for it: SConvFactorZero\r
+#: Rtl/Common/RTLConsts.pas:108 \r Rtl/Sys/SysConst.pas:117
+msgid "%s has a factor of zero"
+msgstr "%s tiene un factor de cero"
+
+#. Programmer's name for it: SConvStrParseError\r
+#: Rtl/Common/RTLConsts.pas:109 \r
+msgid "Could not parse %s"
+msgstr "No se pudo analizar %s"
+
+#. Programmer's name for it: SFailedToCallConstructor\r
+#: Rtl/Common/RTLConsts.pas:110 \r
+msgid "TStrings descendant %s failed to call inherited constructor"
+msgstr ""
+"El descendiente de TStrings %s falló en la llamada al constructor heredado"
+
+#. Programmer's name for it: sWindowsSocketError\r
+#: Rtl/Common/RTLConsts.pas:112 \r
+msgid "Windows socket error: %s (%d), on API '%s'"
+msgstr "Hay un error en el socket de Windows: %s (%d), en API '%s'"
+
+#. Programmer's name for it: SDistanceDescription\r
+#: Rtl/Common/StdConvs.pas:300 \r
+msgid "Distance"
+msgstr "Distancia"
+
+#. Programmer's name for it: SMicromicronsDescription\r
+#: Rtl/Common/StdConvs.pas:303 \r
+msgid "Micromicrons"
+msgstr "Micromicrones"
+
+#. Programmer's name for it: SAngstromsDescription\r
+#: Rtl/Common/StdConvs.pas:304 \r
+msgid "Angstroms"
+msgstr "Amstrongs"
+
+#. Programmer's name for it: SMillimicronsDescription\r
+#: Rtl/Common/StdConvs.pas:305 \r
+msgid "Millimicrons"
+msgstr "Milimicrones"
+
+#. Programmer's name for it: SMicronsDescription\r
+#: Rtl/Common/StdConvs.pas:306 \r
+msgid "Microns"
+msgstr "Micrones"
+
+#. Programmer's name for it: SMillimetersDescription\r
+#: Rtl/Common/StdConvs.pas:307 \r
+msgid "Millimeters"
+msgstr "Milímetros"
+
+#. Programmer's name for it: SCentimetersDescription\r
+#: Rtl/Common/StdConvs.pas:308 \r
+msgid "Centimeters"
+msgstr "Centímetros"
+
+#. Programmer's name for it: SDecimetersDescription\r
+#: Rtl/Common/StdConvs.pas:309 \r
+msgid "Decimeters"
+msgstr "Decímetros"
+
+#. Programmer's name for it: SMetersDescription\r
+#: Rtl/Common/StdConvs.pas:310 \r
+msgid "Meters"
+msgstr "Metros"
+
+#. Programmer's name for it: SDecametersDescription\r
+#: Rtl/Common/StdConvs.pas:311 \r
+msgid "Decameters"
+msgstr "Decámetros"
+
+#. Programmer's name for it: SHectometersDescription\r
+#: Rtl/Common/StdConvs.pas:312 \r
+msgid "Hectometers"
+msgstr "Hectómetros"
+
+#. Programmer's name for it: SKilometersDescription\r
+#: Rtl/Common/StdConvs.pas:313 \r
+msgid "Kilometers"
+msgstr "Kilómetros"
+
+#. Programmer's name for it: SMegametersDescription\r
+#: Rtl/Common/StdConvs.pas:314 \r
+msgid "Megameters"
+msgstr "Megámetros"
+
+#. Programmer's name for it: SGigametersDescription\r
+#: Rtl/Common/StdConvs.pas:315 \r
+msgid "Gigameters"
+msgstr "Gigámetros"
+
+#. Programmer's name for it: SInchesDescription\r
+#: Rtl/Common/StdConvs.pas:316 \r
+msgid "Inches"
+msgstr "Pulgadas"
+
+#. Programmer's name for it: SFeetDescription\r
+#: Rtl/Common/StdConvs.pas:317 \r
+msgid "Feet"
+msgstr "Pies"
+
+#. Programmer's name for it: SYardsDescription\r
+#: Rtl/Common/StdConvs.pas:318 \r
+msgid "Yards"
+msgstr "Yardas"
+
+#. Programmer's name for it: SMilesDescription\r
+#: Rtl/Common/StdConvs.pas:319 \r
+msgid "Miles"
+msgstr "Millas"
+
+#. Programmer's name for it: SNauticalMilesDescription\r
+#: Rtl/Common/StdConvs.pas:320 \r
+msgid "NauticalMiles"
+msgstr "Millas náuticas"
+
+#. Programmer's name for it: SAstronomicalUnitsDescription\r
+#: Rtl/Common/StdConvs.pas:321 \r
+msgid "AstronomicalUnits"
+msgstr "Unidades Astronómicas"
+
+#. Programmer's name for it: SLightYearsDescription\r
+#: Rtl/Common/StdConvs.pas:322 \r
+msgid "LightYears"
+msgstr "Años Luz"
+
+#. Programmer's name for it: SParsecsDescription\r
+#: Rtl/Common/StdConvs.pas:323 \r
+msgid "Parsecs"
+msgstr "Parsecs"
+
+#. Programmer's name for it: SCubitsDescription\r
+#: Rtl/Common/StdConvs.pas:324 \r
+msgid "Cubits"
+msgstr "Codos"
+
+#. Programmer's name for it: SFathomsDescription\r
+#: Rtl/Common/StdConvs.pas:325 \r
+msgid "Fathoms"
+msgstr "Brazas"
+
+#. Programmer's name for it: SFurlongsDescription\r
+#: Rtl/Common/StdConvs.pas:326 \r
+msgid "Furlongs"
+msgstr "Furlongs"
+
+#. Programmer's name for it: SHandsDescription\r
+#: Rtl/Common/StdConvs.pas:327 \r
+msgid "Hands"
+msgstr "Palmas"
+
+#. Programmer's name for it: SPacesDescription\r
+#: Rtl/Common/StdConvs.pas:328 \r
+msgid "Paces"
+msgstr "Pasos"
+
+#. Programmer's name for it: SRodsDescription\r
+#: Rtl/Common/StdConvs.pas:329 \r
+msgid "Rods"
+msgstr ""
+
+#. Programmer's name for it: SChainsDescription\r
+#: Rtl/Common/StdConvs.pas:330 \r
+msgid "Chains"
+msgstr ""
+
+#. Programmer's name for it: SLinksDescription\r
+#: Rtl/Common/StdConvs.pas:331 \r
+msgid "Links"
+msgstr ""
+
+#. Programmer's name for it: SPicasDescription\r
+#: Rtl/Common/StdConvs.pas:332 \r
+msgid "Picas"
+msgstr "Picas"
+
+#. Programmer's name for it: SPointsDescription\r
+#: Rtl/Common/StdConvs.pas:333 \r
+msgid "Points"
+msgstr "Puntos"
+
+#. Programmer's name for it: SAreaDescription\r
+#: Rtl/Common/StdConvs.pas:337 \r
+msgid "Area"
+msgstr "Área"
+
+#. Programmer's name for it: SSquareMillimetersDescription\r
+#: Rtl/Common/StdConvs.pas:340 \r
+msgid "SquareMillimeters"
+msgstr "Millímetros cuadrados"
+
+#. Programmer's name for it: SSquareCentimetersDescription\r
+#: Rtl/Common/StdConvs.pas:341 \r
+msgid "SquareCentimeters"
+msgstr "Centímetros cuadrados"
+
+#. Programmer's name for it: SSquareDecimetersDescription\r
+#: Rtl/Common/StdConvs.pas:342 \r
+msgid "SquareDecimeters"
+msgstr "Decímetros cuadrados"
+
+#. Programmer's name for it: SSquareMetersDescription\r
+#: Rtl/Common/StdConvs.pas:343 \r
+msgid "SquareMeters"
+msgstr "Metros cuadrados"
+
+#. Programmer's name for it: SSquareDecametersDescription\r
+#: Rtl/Common/StdConvs.pas:344 \r
+msgid "SquareDecameters"
+msgstr "Decámetros cuadrados"
+
+#. Programmer's name for it: SSquareHectometersDescription\r
+#: Rtl/Common/StdConvs.pas:345 \r
+msgid "SquareHectometers"
+msgstr "Hectómetros cuadrados"
+
+#. Programmer's name for it: SSquareKilometersDescription\r
+#: Rtl/Common/StdConvs.pas:346 \r
+msgid "SquareKilometers"
+msgstr "Kilómetros cuadrados"
+
+#. Programmer's name for it: SSquareInchesDescription\r
+#: Rtl/Common/StdConvs.pas:347 \r
+msgid "SquareInches"
+msgstr "Pulgadas cuadradas"
+
+#. Programmer's name for it: SSquareFeetDescription\r
+#: Rtl/Common/StdConvs.pas:348 \r
+msgid "SquareFeet"
+msgstr "Pies cuadrados"
+
+#. Programmer's name for it: SSquareYardsDescription\r
+#: Rtl/Common/StdConvs.pas:349 \r
+msgid "SquareYards"
+msgstr "Yardas cuadradas"
+
+#. Programmer's name for it: SSquareMilesDescription\r
+#: Rtl/Common/StdConvs.pas:350 \r
+msgid "SquareMiles"
+msgstr "Millas cuadradas"
+
+#. Programmer's name for it: SAcresDescription\r
+#: Rtl/Common/StdConvs.pas:351 \r
+msgid "Acres"
+msgstr "Ácres"
+
+#. Programmer's name for it: SCentaresDescription\r
+#: Rtl/Common/StdConvs.pas:352 \r
+msgid "Centares"
+msgstr "Centares"
+
+#. Programmer's name for it: SAresDescription\r
+#: Rtl/Common/StdConvs.pas:353 \r
+msgid "Ares"
+msgstr "Ares"
+
+#. Programmer's name for it: SHectaresDescription\r
+#: Rtl/Common/StdConvs.pas:354 \r
+msgid "Hectares"
+msgstr "Hectáreas"
+
+#. Programmer's name for it: SSquareRodsDescription\r
+#: Rtl/Common/StdConvs.pas:355 \r
+msgid "SquareRods"
+msgstr ""
+
+#. Programmer's name for it: SVolumeDescription\r
+#: Rtl/Common/StdConvs.pas:359 \r
+msgid "Volume"
+msgstr "Volumen"
+
+#. Programmer's name for it: SCubicMillimetersDescription\r
+#: Rtl/Common/StdConvs.pas:362 \r
+msgid "CubicMillimeters"
+msgstr "Milímetros cúbicos"
+
+#. Programmer's name for it: SCubicCentimetersDescription\r
+#: Rtl/Common/StdConvs.pas:363 \r
+msgid "CubicCentimeters"
+msgstr "Centímetros cúbicos"
+
+#. Programmer's name for it: SCubicDecimetersDescription\r
+#: Rtl/Common/StdConvs.pas:364 \r
+msgid "CubicDecimeters"
+msgstr "Decímetros cúbicos"
+
+#. Programmer's name for it: SCubicMetersDescription\r
+#: Rtl/Common/StdConvs.pas:365 \r
+msgid "CubicMeters"
+msgstr "Metros cúbicos"
+
+#. Programmer's name for it: SCubicDecametersDescription\r
+#: Rtl/Common/StdConvs.pas:366 \r
+msgid "CubicDecameters"
+msgstr "Decámetros cúbicos"
+
+#. Programmer's name for it: SCubicHectometersDescription\r
+#: Rtl/Common/StdConvs.pas:367 \r
+msgid "CubicHectometers"
+msgstr "Hectómetros cúbicos"
+
+#. Programmer's name for it: SCubicKilometersDescription\r
+#: Rtl/Common/StdConvs.pas:368 \r
+msgid "CubicKilometers"
+msgstr "Kilómetros cúbicos"
+
+#. Programmer's name for it: SCubicInchesDescription\r
+#: Rtl/Common/StdConvs.pas:369 \r
+msgid "CubicInches"
+msgstr "Pulgadas cúbicas"
+
+#. Programmer's name for it: SCubicFeetDescription\r
+#: Rtl/Common/StdConvs.pas:370 \r
+msgid "CubicFeet"
+msgstr "Pies cúbicos"
+
+#. Programmer's name for it: SCubicYardsDescription\r
+#: Rtl/Common/StdConvs.pas:371 \r
+msgid "CubicYards"
+msgstr "Yardas cúbicas"
+
+#. Programmer's name for it: SCubicMilesDescription\r
+#: Rtl/Common/StdConvs.pas:372 \r
+msgid "CubicMiles"
+msgstr "Millas cúbicas"
+
+#. Programmer's name for it: SMilliLitersDescription\r
+#: Rtl/Common/StdConvs.pas:373 \r
+msgid "MilliLiters"
+msgstr "Mililitros"
+
+#. Programmer's name for it: SCentiLitersDescription\r
+#: Rtl/Common/StdConvs.pas:374 \r
+msgid "CentiLiters"
+msgstr "Centilitros"
+
+#. Programmer's name for it: SDeciLitersDescription\r
+#: Rtl/Common/StdConvs.pas:375 \r
+msgid "DeciLiters"
+msgstr "Decilitros"
+
+#. Programmer's name for it: SLitersDescription\r
+#: Rtl/Common/StdConvs.pas:376 \r
+msgid "Liters"
+msgstr "Litros"
+
+#. Programmer's name for it: SDecaLitersDescription\r
+#: Rtl/Common/StdConvs.pas:377 \r
+msgid "DecaLiters"
+msgstr "Decalitros"
+
+#. Programmer's name for it: SHectoLitersDescription\r
+#: Rtl/Common/StdConvs.pas:378 \r
+msgid "HectoLiters"
+msgstr "Hectolitros"
+
+#. Programmer's name for it: SKiloLitersDescription\r
+#: Rtl/Common/StdConvs.pas:379 \r
+msgid "KiloLiters"
+msgstr "Kilolitros"
+
+#. Programmer's name for it: SAcreFeetDescription\r
+#: Rtl/Common/StdConvs.pas:380 \r
+msgid "AcreFeet"
+msgstr ""
+
+#. Programmer's name for it: SAcreInchesDescription\r
+#: Rtl/Common/StdConvs.pas:381 \r
+msgid "AcreInches"
+msgstr ""
+
+#. Programmer's name for it: SCordsDescription\r
+#: Rtl/Common/StdConvs.pas:382 \r
+msgid "Cords"
+msgstr ""
+
+#. Programmer's name for it: SCordFeetDescription\r
+#: Rtl/Common/StdConvs.pas:383 \r
+msgid "CordFeet"
+msgstr ""
+
+#. Programmer's name for it: SDecisteresDescription\r
+#: Rtl/Common/StdConvs.pas:384 \r
+msgid "Decisteres"
+msgstr ""
+
+#. Programmer's name for it: SSteresDescription\r
+#: Rtl/Common/StdConvs.pas:385 \r
+msgid "Steres"
+msgstr ""
+
+#. Programmer's name for it: SDecasteresDescription\r
+#: Rtl/Common/StdConvs.pas:386 \r
+msgid "Decasteres"
+msgstr ""
+
+#. Programmer's name for it: SFluidGallonsDescription\r
+#: Rtl/Common/StdConvs.pas:389 \r
+msgid "FluidGallons"
+msgstr ""
+
+#. Programmer's name for it: SFluidQuartsDescription\r
+#: Rtl/Common/StdConvs.pas:390 \r
+msgid "FluidQuarts"
+msgstr ""
+
+#. Programmer's name for it: SFluidPintsDescription\r
+#: Rtl/Common/StdConvs.pas:391 \r
+msgid "FluidPints"
+msgstr ""
+
+#. Programmer's name for it: SFluidCupsDescription\r
+#: Rtl/Common/StdConvs.pas:392 \r
+msgid "FluidCups"
+msgstr ""
+
+#. Programmer's name for it: SFluidGillsDescription\r
+#: Rtl/Common/StdConvs.pas:393 \r
+msgid "FluidGills"
+msgstr ""
+
+#. Programmer's name for it: SFluidOuncesDescription\r
+#: Rtl/Common/StdConvs.pas:394 \r
+msgid "FluidOunces"
+msgstr ""
+
+#. Programmer's name for it: SFluidTablespoonsDescription\r
+#: Rtl/Common/StdConvs.pas:395 \r
+msgid "FluidTablespoons"
+msgstr ""
+
+#. Programmer's name for it: SFluidTeaspoonsDescription\r
+#: Rtl/Common/StdConvs.pas:396 \r
+msgid "FluidTeaspoons"
+msgstr ""
+
+#. Programmer's name for it: SDryGallonsDescription\r
+#: Rtl/Common/StdConvs.pas:399 \r
+msgid "DryGallons"
+msgstr ""
+
+#. Programmer's name for it: SDryQuartsDescription\r
+#: Rtl/Common/StdConvs.pas:400 \r
+msgid "DryQuarts"
+msgstr ""
+
+#. Programmer's name for it: SDryPintsDescription\r
+#: Rtl/Common/StdConvs.pas:401 \r
+msgid "DryPints"
+msgstr ""
+
+#. Programmer's name for it: SDryPecksDescription\r
+#: Rtl/Common/StdConvs.pas:402 \r
+msgid "DryPecks"
+msgstr ""
+
+#. Programmer's name for it: SDryBucketsDescription\r
+#: Rtl/Common/StdConvs.pas:403 \r
+msgid "DryBuckets"
+msgstr ""
+
+#. Programmer's name for it: SDryBushelsDescription\r
+#: Rtl/Common/StdConvs.pas:404 \r
+msgid "DryBushels"
+msgstr ""
+
+#. Programmer's name for it: SUKGallonsDescription\r
+#: Rtl/Common/StdConvs.pas:407 \r
+msgid "UKGallons"
+msgstr ""
+
+#. Programmer's name for it: SUKPottlesDescription\r
+#: Rtl/Common/StdConvs.pas:408 \r
+msgid "UKPottle"
+msgstr ""
+
+#. Programmer's name for it: SUKQuartsDescription\r
+#: Rtl/Common/StdConvs.pas:409 \r
+msgid "UKQuarts"
+msgstr ""
+
+#. Programmer's name for it: SUKPintsDescription\r
+#: Rtl/Common/StdConvs.pas:410 \r
+msgid "UKPints"
+msgstr ""
+
+#. Programmer's name for it: SUKGillsDescription\r
+#: Rtl/Common/StdConvs.pas:411 \r
+msgid "UKGill"
+msgstr ""
+
+#. Programmer's name for it: SUKOuncesDescription\r
+#: Rtl/Common/StdConvs.pas:412 \r
+msgid "UKOunces"
+msgstr ""
+
+#. Programmer's name for it: SUKPecksDescription\r
+#: Rtl/Common/StdConvs.pas:413 \r
+msgid "UKPecks"
+msgstr ""
+
+#. Programmer's name for it: SUKBucketsDescription\r
+#: Rtl/Common/StdConvs.pas:414 \r
+msgid "UKBuckets"
+msgstr ""
+
+#. Programmer's name for it: SUKBushelsDescription\r
+#: Rtl/Common/StdConvs.pas:415 \r
+msgid "UKBushels"
+msgstr ""
+
+#. Programmer's name for it: SMassDescription\r
+#: Rtl/Common/StdConvs.pas:419 \r
+msgid "Mass"
+msgstr "Masa"
+
+#. Programmer's name for it: SNanogramsDescription\r
+#: Rtl/Common/StdConvs.pas:422 \r
+msgid "Nanograms"
+msgstr "Nanogramos"
+
+#. Programmer's name for it: SMicrogramsDescription\r
+#: Rtl/Common/StdConvs.pas:423 \r
+msgid "Micrograms"
+msgstr "Microgramos"
+
+#. Programmer's name for it: SMilligramsDescription\r
+#: Rtl/Common/StdConvs.pas:424 \r
+msgid "Milligrams"
+msgstr "Miligramos"
+
+#. Programmer's name for it: SCentigramsDescription\r
+#: Rtl/Common/StdConvs.pas:425 \r
+msgid "Centigrams"
+msgstr "Centigramos"
+
+#. Programmer's name for it: SDecigramsDescription\r
+#: Rtl/Common/StdConvs.pas:426 \r
+msgid "Decigrams"
+msgstr "Decigramos"
+
+#. Programmer's name for it: SGramsDescription\r
+#: Rtl/Common/StdConvs.pas:427 \r
+msgid "Grams"
+msgstr "Gramos"
+
+#. Programmer's name for it: SDecagramsDescription\r
+#: Rtl/Common/StdConvs.pas:428 \r
+msgid "Decagrams"
+msgstr "Decagramos"
+
+#. Programmer's name for it: SHectogramsDescription\r
+#: Rtl/Common/StdConvs.pas:429 \r
+msgid "Hectograms"
+msgstr "Hectogramos"
+
+#. Programmer's name for it: SKilogramsDescription\r
+#: Rtl/Common/StdConvs.pas:430 \r
+msgid "Kilograms"
+msgstr "Kilogramos"
+
+#. Programmer's name for it: SMetricTonsDescription\r
+#: Rtl/Common/StdConvs.pas:431 \r
+msgid "MetricTons"
+msgstr "Toneladas métricas"
+
+#. Programmer's name for it: SDramsDescription\r
+#: Rtl/Common/StdConvs.pas:432 \r
+msgid "Drams"
+msgstr ""
+
+#. Programmer's name for it: SGrainsDescription\r
+#: Rtl/Common/StdConvs.pas:433 \r
+msgid "Grains"
+msgstr ""
+
+#. Programmer's name for it: STonsDescription\r
+#: Rtl/Common/StdConvs.pas:434 \r
+msgid "Tons"
+msgstr "Toneladas"
+
+#. Programmer's name for it: SLongTonsDescription\r
+#: Rtl/Common/StdConvs.pas:435 \r
+msgid "LongTons"
+msgstr ""
+
+#. Programmer's name for it: SOuncesDescription\r
+#: Rtl/Common/StdConvs.pas:436 \r
+msgid "Ounces"
+msgstr ""
+
+#. Programmer's name for it: SPoundsDescription\r
+#: Rtl/Common/StdConvs.pas:437 \r
+msgid "Pounds"
+msgstr ""
+
+#. Programmer's name for it: STemperatureDescription\r
+#: Rtl/Common/StdConvs.pas:441 \r
+msgid "Temperature"
+msgstr "Temperatura"
+
+#. Programmer's name for it: SCelsiusDescription\r
+#: Rtl/Common/StdConvs.pas:444 \r
+msgid "Celsius"
+msgstr "Celsius"
+
+#. Programmer's name for it: SKelvinDescription\r
+#: Rtl/Common/StdConvs.pas:445 \r
+msgid "Kelvin"
+msgstr "Kelvin"
+
+#. Programmer's name for it: SFahrenheitDescription\r
+#: Rtl/Common/StdConvs.pas:446 \r
+msgid "Fahrenheit"
+msgstr "Fahrenheit"
+
+#. Programmer's name for it: SRankineDescription\r
+#: Rtl/Common/StdConvs.pas:447 \r
+msgid "Rankine"
+msgstr "Rankine"
+
+#. Programmer's name for it: SReaumurDescription\r
+#: Rtl/Common/StdConvs.pas:448 \r
+msgid "Reaumur"
+msgstr "Reaumur"
+
+#. Programmer's name for it: SMilliSecondsDescription\r
+#: Rtl/Common/StdConvs.pas:455 \r
+msgid "MilliSeconds"
+msgstr "Milisegundos"
+
+#. Programmer's name for it: SSecondsDescription\r
+#: Rtl/Common/StdConvs.pas:456 \r
+msgid "Seconds"
+msgstr "Segundos"
+
+#. Programmer's name for it: SMinutesDescription\r
+#: Rtl/Common/StdConvs.pas:457 \r
+msgid "Minutes"
+msgstr "Minutos"
+
+#. Programmer's name for it: SHoursDescription\r
+#: Rtl/Common/StdConvs.pas:458 \r
+msgid "Hours"
+msgstr "Horas"
+
+#. Programmer's name for it: SDaysDescription\r
+#: Rtl/Common/StdConvs.pas:459 \r
+msgid "Days"
+msgstr "Días"
+
+#. Programmer's name for it: SWeeksDescription\r
+#: Rtl/Common/StdConvs.pas:460 \r
+msgid "Weeks"
+msgstr "Semanas"
+
+#. Programmer's name for it: SFortnightsDescription\r
+#: Rtl/Common/StdConvs.pas:461 \r
+msgid "Fortnights"
+msgstr ""
+
+#. Programmer's name for it: SMonthsDescription\r
+#: Rtl/Common/StdConvs.pas:462 \r
+msgid "Months"
+msgstr "Meses"
+
+#. Programmer's name for it: SYearsDescription\r
+#: Rtl/Common/StdConvs.pas:463 \r
+msgid "Years"
+msgstr "Años"
+
+#. Programmer's name for it: SDecadesDescription\r
+#: Rtl/Common/StdConvs.pas:464 \r
+msgid "Decades"
+msgstr "Décadas"
+
+#. Programmer's name for it: SCenturiesDescription\r
+#: Rtl/Common/StdConvs.pas:465 \r
+msgid "Centuries"
+msgstr "Cenurias"
+
+#. Programmer's name for it: SMillenniaDescription\r
+#: Rtl/Common/StdConvs.pas:466 \r
+msgid "Millennia"
+msgstr "Milenios"
+
+#. Programmer's name for it: SDateTimeDescription\r
+#: Rtl/Common/StdConvs.pas:467 \r
+msgid "DateTime"
+msgstr "Fecha y Hora"
+
+#. Programmer's name for it: SJulianDateDescription\r
+#: Rtl/Common/StdConvs.pas:468 \r
+msgid "JulianDate"
+msgstr "Fecha Juliana"
+
+#. Programmer's name for it: SModifiedJulianDateDescription\r
+#: Rtl/Common/StdConvs.pas:469 \r
+msgid "ModifiedJulianDate"
+msgstr "Fecha Juliana Modificada"
+
+#. Programmer's name for it: SCouldNotParseImaginary\r
+#: Rtl/Common/VarCmplx.pas:255 \r
+msgid "Could not parse imaginary portion"
+msgstr ""
+
+#. Programmer's name for it: SCouldNotParseSymbol\r
+#: Rtl/Common/VarCmplx.pas:256 \r
+msgid "Could not parse required '%s' symbol"
+msgstr ""
+
+#. Programmer's name for it: SCouldNotParsePlus\r
+#: Rtl/Common/VarCmplx.pas:257 \r
+msgid "Could not parse required '+' (or '-') symbol"
+msgstr ""
+
+#. Programmer's name for it: SCouldNotParseReal\r
+#: Rtl/Common/VarCmplx.pas:258 \r
+msgid "Could not parse real portion"
+msgstr ""
+
+#. Programmer's name for it: SUnexpectedEOS\r
+#: Rtl/Common/VarCmplx.pas:259 \r
+msgid "Unexpected end of string [%s]"
+msgstr "Fin de cadena inesperada [%s]"
+
+#. Programmer's name for it: SErrorSuffix\r
+#: Rtl/Common/VarCmplx.pas:260 \r
+msgid "%s [%s<?>%s]"
+msgstr ""
+
+#. Programmer's name for it: SCorbaDllNotLoaded\r
+#: Rtl/Corba/CorbCnst.pas:14 \r Rtl/Corba40/CorbCnst.pas:14
+msgid "Unable to load CORBA libraries"
+msgstr "No se pueden cargar las librerias CORBA"
+
+#. Programmer's name for it: SCorbaNotInitialized\r
+#: Rtl/Corba/CorbCnst.pas:15 \r Rtl/Corba40/CorbCnst.pas:15
+msgid "CORBA libraries are unavailable or not initialized"
+msgstr ""
+
+#. Programmer's name for it: SCorbaSkeletonNotRegistered\r
+#: Rtl/Corba/CorbCnst.pas:16 \r Rtl/Corba40/CorbCnst.pas:16
+msgid "CORBA server skeleton not registered for object %s"
+msgstr ""
+
+#. Programmer's name for it: SCorbaStubNotRegistered\r
+#: Rtl/Corba/CorbCnst.pas:17 \r Rtl/Corba40/CorbCnst.pas:17
+msgid "CORBA client stub not registered"
+msgstr ""
+
+#. Programmer's name for it: SCorbaInterfaceIDNotRegister\r
+#: Rtl/Corba/CorbCnst.pas:18 \r Rtl/Corba40/CorbCnst.pas:18
+msgid "CORBA interface not registered"
+msgstr ""
+
+#. Programmer's name for it: SCorbaRepositoryIDNotRegistered\r
+#: Rtl/Corba/CorbCnst.pas:19 \r Rtl/Corba40/CorbCnst.pas:19
+msgid "CORBA Repository ID \"%s\" not registered"
+msgstr ""
+
+#. Programmer's name for it: SCorbaIncompleteFactory\r
+#: Rtl/Corba/CorbCnst.pas:20 \r Rtl/Corba40/CorbCnst.pas:20
+msgid "CORBA Factory did not implement CreateInterface"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTypeCast\r
+#: Rtl/Corba/CorbCnst.pas:23 \r Rtl/Corba40/CorbCnst.pas:23
+msgid "Variant cannot be converted to a CORBA Any"
+msgstr ""
+
+#. Programmer's name for it: sNotCorbaObject\r
+#: Rtl/Corba/CorbCnst.pas:24 \r Rtl/Corba40/CorbCnst.pas:24
+msgid "Variant/Any not a CORBA object"
+msgstr ""
+
+#. Programmer's name for it: sParamTypeCast\r
+#: Rtl/Corba/CorbCnst.pas:25 \r Rtl/Corba40/CorbCnst.pas:25
+msgid "Parameter (%d) of method %s not of the correct type"
+msgstr ""
+
+#. Programmer's name for it: sParamOut\r
+#: Rtl/Corba/CorbCnst.pas:26 \r Rtl/Corba40/CorbCnst.pas:26
+msgid ""
+"Parameter (%d) of method %s is an out or in/out parameter and requires a "
+"variable reference"
+msgstr ""
+
+#. Programmer's name for it: sNoRepository\r
+#: Rtl/Corba/CorbCnst.pas:27 \r Rtl/Corba40/CorbCnst.pas:27
+msgid "Could not perform CORBA Dispatch, no interface repository found"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParameterCount\r
+#: Rtl/Corba/CorbCnst.pas:28 \r Rtl/Corba40/CorbCnst.pas:28
+msgid "Incorrect number of parameters to method %s"
+msgstr ""
+
+#. Programmer's name for it: sMethodNotFound\r
+#: Rtl/Corba/CorbCnst.pas:29 \r Rtl/Corba40/CorbCnst.pas:29
+msgid "Method %s not found"
+msgstr "No se ha encontrado el método %s"
+
+#. Programmer's name for it: sConnecting\r
+#: Rtl/Corba/CorbCnst.pas:30 \r Rtl/Corba40/CorbCnst.pas:30
+msgid "Connecting to CORBA server..."
+msgstr "Conectando al servidor CORBA "
+
+#. Programmer's name for it: SUnknown\r
+#: Rtl/Sys/SysConst.pas:14 \r
+msgid "<unknown>"
+msgstr "<desconocido>"
+
+#. Programmer's name for it: SInvalidInteger\r
+#: Rtl/Sys/SysConst.pas:15 \r
+msgid "'%s' is not a valid integer value"
+msgstr "'%s' no es un valor entero válido"
+
+#. Programmer's name for it: SInvalidFloat\r
+#: Rtl/Sys/SysConst.pas:16 \r
+msgid "'%s' is not a valid floating point value"
+msgstr "'%s' no es un valor con punto flotante válido"
+
+#. Programmer's name for it: SInvalidCurrency\r
+#: Rtl/Sys/SysConst.pas:17 \r
+msgid "'%s' is not a valid currency value"
+msgstr "'%s' no es un valor de dinero válido"
+
+#. Programmer's name for it: SInvalidDate\r
+#: Rtl/Sys/SysConst.pas:18 \r
+msgid "'%s' is not a valid date"
+msgstr "'%s' no es una fecha válida"
+
+#. Programmer's name for it: SInvalidTime\r
+#: Rtl/Sys/SysConst.pas:19 \r
+msgid "'%s' is not a valid time"
+msgstr "'%s' no es una hora válida"
+
+#. Programmer's name for it: SInvalidDateTime\r
+#: Rtl/Sys/SysConst.pas:20 \r
+msgid "'%s' is not a valid date and time"
+msgstr "'%s' no es una fecha y hora válidas"
+
+#. Programmer's name for it: SInvalidDateTimeFloat\r
+#: Rtl/Sys/SysConst.pas:21 \r
+msgid "'%g' is not a valid date and time"
+msgstr "'%g' no es una fecha y tiempo válidos"
+
+#. Programmer's name for it: SInvalidTimeStamp\r
+#: Rtl/Sys/SysConst.pas:22 \r
+msgid "'%d.%d' is not a valid timestamp"
+msgstr "'%d.%d' no es un timestamp válido"
+
+#. Programmer's name for it: SInvalidGUID\r
+#: Rtl/Sys/SysConst.pas:23 \r
+msgid "'%s' is not a valid GUID value"
+msgstr "'%s' no es un valor de GUID válido"
+
+#. Programmer's name for it: SInvalidBoolean\r
+#: Rtl/Sys/SysConst.pas:24 \r
+msgid "'%s' is not a valid boolean value"
+msgstr "'%s' no es un valor de GUID válido"
+
+#. Programmer's name for it: SOutOfMemory\r
+#: Rtl/Sys/SysConst.pas:27 \r
+msgid "Out of memory"
+msgstr "Fuera de memoria"
+
+#. Programmer's name for it: SInOutError\r
+#: Rtl/Sys/SysConst.pas:28 \r
+msgid "I/O error %d"
+msgstr "Hay un error E/S %d"
+
+#. Programmer's name for it: SFileNotFound\r
+#: Rtl/Sys/SysConst.pas:29 \r
+msgid "File not found"
+msgstr "Archivo no encontrado"
+
+#. Programmer's name for it: SInvalidFilename\r
+#: Rtl/Sys/SysConst.pas:30 \r
+msgid "Invalid filename"
+msgstr "Nombre de archivo no válido"
+
+#. Programmer's name for it: STooManyOpenFiles\r
+#: Rtl/Sys/SysConst.pas:31 \r
+msgid "Too many open files"
+msgstr "Demasiados archivos abiertos"
+
+#. Programmer's name for it: SAccessDenied\r
+#: Rtl/Sys/SysConst.pas:32 \r
+msgid "File access denied"
+msgstr "Acceso al archivo denegado"
+
+#. Programmer's name for it: SEndOfFile\r
+#: Rtl/Sys/SysConst.pas:33 \r
+msgid "Read beyond end of file"
+msgstr "Lectura más allá del final del archivo"
+
+#. Programmer's name for it: SDiskFull\r
+#: Rtl/Sys/SysConst.pas:34 \r
+msgid "Disk full"
+msgstr "Disco lleno"
+
+#. Programmer's name for it: SInvalidInput\r
+#: Rtl/Sys/SysConst.pas:35 \r
+msgid "Invalid numeric input"
+msgstr "Entrada numérica no válida"
+
+#. Programmer's name for it: SDivByZero\r
+#: Rtl/Sys/SysConst.pas:36 \r
+msgid "Division by zero"
+msgstr "División por cero"
+
+#. Programmer's name for it: SRangeError\r
+#: Rtl/Sys/SysConst.pas:37 \r
+msgid "Range check error"
+msgstr "Hay un error de comprobación de rango"
+
+#. Programmer's name for it: SIntOverflow\r
+#: Rtl/Sys/SysConst.pas:38 \r
+msgid "Integer overflow"
+msgstr "Desbordamimento de entero"
+
+#. Programmer's name for it: SInvalidOp\r
+#: Rtl/Sys/SysConst.pas:39 \r
+msgid "Invalid floating point operation"
+msgstr "Operación de coma flotante no válida"
+
+#. Programmer's name for it: SZeroDivide\r
+#: Rtl/Sys/SysConst.pas:40 \r
+msgid "Floating point division by zero"
+msgstr "División de coma flotante por cero"
+
+#. Programmer's name for it: SOverflow\r
+#: Rtl/Sys/SysConst.pas:41 \r
+msgid "Floating point overflow"
+msgstr "Desbordamiento de coma flotante"
+
+#. Programmer's name for it: SUnderflow\r
+#: Rtl/Sys/SysConst.pas:42 \r
+msgid "Floating point underflow"
+msgstr "Coma flotante por debajo de su valor"
+
+#. Programmer's name for it: SInvalidPointer\r
+#: Rtl/Sys/SysConst.pas:43 \r
+msgid "Invalid pointer operation"
+msgstr "Operación de puntero no válida"
+
+#. Programmer's name for it: SInvalidCast\r
+#: Rtl/Sys/SysConst.pas:44 \r
+msgid "Invalid class typecast"
+msgstr "Tipo no válido (typecast) de clase"
+
+#. Programmer's name for it: SAccessViolation\r
+#: Rtl/Sys/SysConst.pas:46 \r
+msgid "Access violation at address %p. %s of address %p"
+msgstr "Violación de acceso a la dirección %p. Accediendo a la dirección %p"
+
+#. Programmer's name for it: SAccessViolation\r
+#: Rtl/Sys/SysConst.pas:49 \r
+msgid "Access violation at address %p, accessing address %p"
+msgstr "Violación de acceso a la dirección %p. %s de dirección %p"
+
+#. Programmer's name for it: SStackOverflow\r
+#: Rtl/Sys/SysConst.pas:51 \r
+msgid "Stack overflow"
+msgstr "Desbordamiento de la pila"
+
+#. Programmer's name for it: SControlC\r
+#: Rtl/Sys/SysConst.pas:52 \r
+msgid "Control-C hit"
+msgstr "Control-C pulsado"
+
+#. Programmer's name for it: SQuit\r
+#: Rtl/Sys/SysConst.pas:53 \r
+msgid "Quit key hit"
+msgstr "Tecla de salida pulsada"
+
+#. Programmer's name for it: SPrivilege\r
+#: Rtl/Sys/SysConst.pas:54 \r
+msgid "Privileged instruction"
+msgstr "Instrucción privilegiada"
+
+#. Programmer's name for it: SOperationAborted\r
+#: Rtl/Sys/SysConst.pas:55 \r
+msgid "Operation aborted"
+msgstr "Operación abortada"
+
+#. Programmer's name for it: SException\r
+#: Rtl/Sys/SysConst.pas:56 \r
+msgid ""
+"Exception %s in module %s at %p.\n"
+"%s%s"
+msgstr ""
+"Excepción %s en el módulo %s en %p.\n"
+"%s%s"
+
+#. Programmer's name for it: SExceptTitle\r
+#: Rtl/Sys/SysConst.pas:57 \r
+msgid "Application Error"
+msgstr "Hay un error de la aplicación"
+
+#. Programmer's name for it: SSigactionFailed\r
+#: Rtl/Sys/SysConst.pas:59 \r
+msgid "sigaction call failed"
+msgstr "La llamada del sigaction falló"
+
+#. Programmer's name for it: SInvalidFormat\r
+#: Rtl/Sys/SysConst.pas:61 \r
+msgid "Format '%s' invalid or incompatible with argument"
+msgstr "Formato '%s' no válido o incompatible con el argumento"
+
+#. Programmer's name for it: SArgumentMissing\r
+#: Rtl/Sys/SysConst.pas:62 \r
+msgid "No argument for format '%s'"
+msgstr "No existe argumento para el formato '%s'"
+
+#. Programmer's name for it: SInvalidVarCast\r
+#: Rtl/Sys/SysConst.pas:63 \r
+msgid "Invalid variant type conversion"
+msgstr "Conversión de tipo variant no válida"
+
+#. Programmer's name for it: SInvalidVarOp\r
+#: Rtl/Sys/SysConst.pas:64 \r
+msgid "Invalid variant operation"
+msgstr "Operación variant no válida"
+
+#. Programmer's name for it: SDispatchError\r
+#: Rtl/Sys/SysConst.pas:65 \r
+msgid "Variant method calls not supported"
+msgstr "Llamadas al método variant no soportadas"
+
+#. Programmer's name for it: SResultTooLong\r
+#: Rtl/Sys/SysConst.pas:68 \r
+msgid "Format result longer than 4096 characters"
+msgstr "Formato del resultado más largo de 4096 caracteres"
+
+#. Programmer's name for it: SFormatTooLong\r
+#: Rtl/Sys/SysConst.pas:69 \r
+msgid "Format string too long"
+msgstr "Formato de cadena demasiado largo"
+
+#. Programmer's name for it: SVarArrayCreate\r
+#: Rtl/Sys/SysConst.pas:70 \r
+msgid "Error creating variant array"
+msgstr "Se ha producido un error al crear matriz de variant"
+
+#. Programmer's name for it: SVarNotArray\r
+#: Rtl/Sys/SysConst.pas:71 \r
+msgid "Variant is not an array"
+msgstr "Variant no es una matriz"
+
+#. Programmer's name for it: SVarArrayBounds\r
+#: Rtl/Sys/SysConst.pas:72 \r
+msgid "Variant array index out of bounds"
+msgstr "Indice de matriz variant fuera de rango"
+
+#. Programmer's name for it: SVarTypeUnknown\r
+#: Rtl/Sys/SysConst.pas:73 \r
+msgid "Unknown custom variant type ($.4x)"
+msgstr "Tipo variant del cliente desconocido ($.4x)"
+
+#. Programmer's name for it: SVarTypeOutOfRange\r
+#: Rtl/Sys/SysConst.pas:74 \r
+msgid "Custom variant type ($.4x) is out of range"
+msgstr "El tipo variant personalizado ($.4x) está fuera de rango"
+
+#. Programmer's name for it: SVarTypeAlreadyUsed\r
+#: Rtl/Sys/SysConst.pas:75 \r
+msgid "Custom variant type (%.4x) already used by %s"
+msgstr "El tipo variant personalizado (%.4x) ya està usado por %s"
+
+#. Programmer's name for it: SVarTypeNotUsable\r
+#: Rtl/Sys/SysConst.pas:76 \r
+msgid "Custom variant type (%.4x) is not usable"
+msgstr "El tipo variant personalizado (%.4x) no es utilizable"
+
+#. Programmer's name for it: SVarTypeTooManyCustom\r
+#: Rtl/Sys/SysConst.pas:77 \r
+msgid "Too many custom variants have been registered"
+msgstr "Han sido registradas demasiadas variantes personalizadas"
+
+#. Programmer's name for it: SVarDataClearRecursing\r
+#: Rtl/Sys/SysConst.pas:78 \r
+msgid "Recursion while doing a VarDataClear"
+msgstr "Recursión mientras se hacía un VarDataClear"
+
+#. Programmer's name for it: SVarDataCopyRecursing\r
+#: Rtl/Sys/SysConst.pas:79 \r
+msgid "Recursion while doing a VarDataCopy"
+msgstr "Recursión mientras se hacía un VarDataCopy"
+
+#. Programmer's name for it: SVarDataCopyNoIndRecursing\r
+#: Rtl/Sys/SysConst.pas:80 \r
+msgid "Recursion while doing a VarDataCopyNoInd"
+msgstr "Recursión mientras se hacía un VarDataCopyNoInd"
+
+#. Programmer's name for it: SVarDataInitRecursing\r
+#: Rtl/Sys/SysConst.pas:81 \r
+msgid "Recursion while doing a VarDataInit"
+msgstr "Recursión mientras se hacía un VarDataInit"
+
+#. Programmer's name for it: SVarDataCastToRecursing\r
+#: Rtl/Sys/SysConst.pas:82 \r
+msgid "Recursion while doing a VarDataCastTo"
+msgstr "Recursión mientras se hacía un VarDataCastTo"
+
+#. Programmer's name for it: SVarIsEmpty\r
+#: Rtl/Sys/SysConst.pas:83 \r
+msgid "Variant is empty"
+msgstr "La variable está vacía"
+
+#. Programmer's name for it: sUnknownFromType\r
+#: Rtl/Sys/SysConst.pas:84 \r
+msgid "Cannot convert from the specified type"
+msgstr "No se puede convertir desde el tipo especificado"
+
+#. Programmer's name for it: sUnknownToType\r
+#: Rtl/Sys/SysConst.pas:85 \r
+msgid "Cannot convert to the specified type"
+msgstr "No se puede convertir al tipo especificado"
+
+#. Programmer's name for it: SExternalException\r
+#: Rtl/Sys/SysConst.pas:86 \r
+msgid "External exception %x"
+msgstr "Excepción externa %x"
+
+#. Programmer's name for it: SAssertionFailed\r
+#: Rtl/Sys/SysConst.pas:87 \r
+msgid "Assertion failed"
+msgstr "Falló la aserción"
+
+#. Programmer's name for it: SIntfCastError\r
+#: Rtl/Sys/SysConst.pas:88 \r
+msgid "Interface not supported"
+msgstr "Interfaz no soportada"
+
+#. Programmer's name for it: SSafecallException\r
+#: Rtl/Sys/SysConst.pas:89 \r
+msgid "Exception in safecall method"
+msgstr "Excepción en método Safecall"
+
+#. Programmer's name for it: SAssertError\r
+#: Rtl/Sys/SysConst.pas:90 \r
+msgid "%s (%s, line %d)"
+msgstr "%s (%s, línea %d)"
+
+#. Programmer's name for it: SAbstractError\r
+#: Rtl/Sys/SysConst.pas:91 \r
+msgid "Abstract Error"
+msgstr "Hay un error abstracto"
+
+#. Programmer's name for it: SModuleAccessViolation\r
+#: Rtl/Sys/SysConst.pas:92 \r
+msgid "Access violation at address %p in module '%s'. %s of address %p"
+msgstr ""
+"Violación de acceso a la dirección %p en el módulo '%s'. %s de dirección %p"
+
+#. Programmer's name for it: SCannotReadPackageInfo\r
+#: Rtl/Sys/SysConst.pas:93 \r
+msgid "Cannot access package information for package '%s'"
+msgstr "No puede acceder la información del paquete para el paquete '%s'"
+
+#. Programmer's name for it: sErrorLoadingPackage\r
+#: Rtl/Sys/SysConst.pas:94 \r
+msgid ""
+"Can't load package %s.\n"
+"%s"
+msgstr ""
+"No se puede cargar el paquete %s.\n"
+"%s"
+
+#. Programmer's name for it: SInvalidPackageFile\r
+#: Rtl/Sys/SysConst.pas:95 \r
+msgid "Invalid package file '%s'"
+msgstr "El archivo del paquete no es válido '%s'"
+
+#. Programmer's name for it: SInvalidPackageHandle\r
+#: Rtl/Sys/SysConst.pas:96 \r
+msgid "Invalid package handle"
+msgstr "El manejador (handle) del paquete no es válido"
+
+#. Programmer's name for it: SDuplicatePackageUnit\r
+#: Rtl/Sys/SysConst.pas:98 \r
+msgid ""
+"Cannot load package '%s.'  It contains unit '%s,'which is also contained in "
+"package '%s'"
+msgstr ""
+"No se puede cargar el paquete '%s'. Contiene la unidad '%s,' que también "
+"está contenida en el paquete '%s'"
+
+#. Programmer's name for it: SOSError\r
+#: Rtl/Sys/SysConst.pas:99 \r
+msgid ""
+"System Error.  Code: %d.\n"
+"%s"
+msgstr ""
+"Hay un error del sistema. Código: %d\n"
+"%s"
+
+#. Programmer's name for it: SUnkOSError\r
+#: Rtl/Sys/SysConst.pas:100 \r
+msgid "A call to an OS function failed"
+msgstr "Ha fallado una llamada a una función del SO"
+
+#. use SOSError\r
+#: Rtl/Sys/SysConst.pas:102 \r
+msgid ""
+"Win32 Error.  Code: %d.\n"
+"%s"
+msgstr ""
+"Hay un error Win32. Código: %d.\n"
+"%s"
+
+#. use SUnkOSError\r
+#: Rtl/Sys/SysConst.pas:103 \r
+msgid "A Win32 API function failed"
+msgstr "Ha fallado una función del API Win32"
+
+#. Programmer's name for it: SNL\r
+#: Rtl/Sys/SysConst.pas:105 \r
+msgid "Application is not licensed to use this feature"
+msgstr "La aplicación no está autorizada para usar esta característica"
+
+#. Programmer's name for it: SConvDuplicateType\r
+#: Rtl/Sys/SysConst.pas:111 \r
+msgid "Conversion type (%s) already registered"
+msgstr "La conversión de tipo (%s) ya está registrada"
+
+#. Programmer's name for it: SShortMonthNameJan\r
+#: Rtl/Sys/SysConst.pas:119 \r
+msgid "Jan"
+msgstr "Ene"
+
+#. Programmer's name for it: SShortMonthNameFeb\r
+#: Rtl/Sys/SysConst.pas:120 \r
+msgid "Feb"
+msgstr "Feb"
+
+#. Programmer's name for it: SShortMonthNameMar\r
+#: Rtl/Sys/SysConst.pas:121 \r
+msgid "Mar"
+msgstr "Mar"
+
+#. Programmer's name for it: SShortMonthNameApr\r
+#: Rtl/Sys/SysConst.pas:122 \r
+msgid "Apr"
+msgstr "Abr"
+
+#. Programmer's name for it: SShortMonthNameMay\r
+#. Programmer's name for it: SLongMonthNameMay\r
+#: Rtl/Sys/SysConst.pas:123 \r Rtl/Sys/SysConst.pas:136
+msgid "May"
+msgstr "May"
+
+#. Programmer's name for it: SShortMonthNameJun\r
+#: Rtl/Sys/SysConst.pas:124 \r
+msgid "Jun"
+msgstr "Jun"
+
+#. Programmer's name for it: SShortMonthNameJul\r
+#: Rtl/Sys/SysConst.pas:125 \r
+msgid "Jul"
+msgstr "Jul"
+
+#. Programmer's name for it: SShortMonthNameAug\r
+#: Rtl/Sys/SysConst.pas:126 \r
+msgid "Aug"
+msgstr "Ago"
+
+#. Programmer's name for it: SShortMonthNameSep\r
+#: Rtl/Sys/SysConst.pas:127 \r
+msgid "Sep"
+msgstr "Sep"
+
+#. Programmer's name for it: SShortMonthNameOct\r
+#: Rtl/Sys/SysConst.pas:128 \r
+msgid "Oct"
+msgstr "Oct"
+
+#. Programmer's name for it: SShortMonthNameNov\r
+#: Rtl/Sys/SysConst.pas:129 \r
+msgid "Nov"
+msgstr "Nov"
+
+#. Programmer's name for it: SShortMonthNameDec\r
+#: Rtl/Sys/SysConst.pas:130 \r
+msgid "Dec"
+msgstr "Dic"
+
+#. Programmer's name for it: SLongMonthNameJan\r
+#: Rtl/Sys/SysConst.pas:132 \r
+msgid "January"
+msgstr "Enero"
+
+#. Programmer's name for it: SLongMonthNameFeb\r
+#: Rtl/Sys/SysConst.pas:133 \r
+msgid "February"
+msgstr "Febrero"
+
+#. Programmer's name for it: SLongMonthNameMar\r
+#: Rtl/Sys/SysConst.pas:134 \r
+msgid "March"
+msgstr "Marzo"
+
+#. Programmer's name for it: SLongMonthNameApr\r
+#: Rtl/Sys/SysConst.pas:135 \r
+msgid "April"
+msgstr "Abril"
+
+#. Programmer's name for it: SLongMonthNameJun\r
+#: Rtl/Sys/SysConst.pas:137 \r
+msgid "June"
+msgstr "Junio"
+
+#. Programmer's name for it: SLongMonthNameJul\r
+#: Rtl/Sys/SysConst.pas:138 \r
+msgid "July"
+msgstr "Julio"
+
+#. Programmer's name for it: SLongMonthNameAug\r
+#: Rtl/Sys/SysConst.pas:139 \r
+msgid "August"
+msgstr "Agosto"
+
+#. Programmer's name for it: SLongMonthNameSep\r
+#: Rtl/Sys/SysConst.pas:140 \r
+msgid "September"
+msgstr "Septiembre"
+
+#. Programmer's name for it: SLongMonthNameOct\r
+#: Rtl/Sys/SysConst.pas:141 \r
+msgid "October"
+msgstr "Octubre"
+
+#. Programmer's name for it: SLongMonthNameNov\r
+#: Rtl/Sys/SysConst.pas:142 \r
+msgid "November"
+msgstr "Noviembre"
+
+#. Programmer's name for it: SLongMonthNameDec\r
+#: Rtl/Sys/SysConst.pas:143 \r
+msgid "December"
+msgstr "Diciembre"
+
+#. Programmer's name for it: SShortDayNameSun\r
+#: Rtl/Sys/SysConst.pas:145 \r
+msgid "Sun"
+msgstr "Dom"
+
+#. Programmer's name for it: SShortDayNameMon\r
+#: Rtl/Sys/SysConst.pas:146 \r
+msgid "Mon"
+msgstr "Lun"
+
+#. Programmer's name for it: SShortDayNameTue\r
+#: Rtl/Sys/SysConst.pas:147 \r
+msgid "Tue"
+msgstr "Mar"
+
+#. Programmer's name for it: SShortDayNameWed\r
+#: Rtl/Sys/SysConst.pas:148 \r
+msgid "Wed"
+msgstr "Mie"
+
+#. Programmer's name for it: SShortDayNameThu\r
+#: Rtl/Sys/SysConst.pas:149 \r
+msgid "Thu"
+msgstr "Jue"
+
+#. Programmer's name for it: SShortDayNameFri\r
+#: Rtl/Sys/SysConst.pas:150 \r
+msgid "Fri"
+msgstr "Vie"
+
+#. Programmer's name for it: SShortDayNameSat\r
+#: Rtl/Sys/SysConst.pas:151 \r
+msgid "Sat"
+msgstr "Sab"
+
+#. Programmer's name for it: SLongDayNameSun\r
+#: Rtl/Sys/SysConst.pas:153 \r
+msgid "Sunday"
+msgstr "Domingo"
+
+#. Programmer's name for it: SLongDayNameMon\r
+#: Rtl/Sys/SysConst.pas:154 \r
+msgid "Monday"
+msgstr "Lunes"
+
+#. Programmer's name for it: SLongDayNameTue\r
+#: Rtl/Sys/SysConst.pas:155 \r
+msgid "Tuesday"
+msgstr "Martes"
+
+#. Programmer's name for it: SLongDayNameWed\r
+#: Rtl/Sys/SysConst.pas:156 \r
+msgid "Wednesday"
+msgstr "Miércoles"
+
+#. Programmer's name for it: SLongDayNameThu\r
+#: Rtl/Sys/SysConst.pas:157 \r
+msgid "Thursday"
+msgstr "Jueves"
+
+#. Programmer's name for it: SLongDayNameFri\r
+#: Rtl/Sys/SysConst.pas:158 \r
+msgid "Friday"
+msgstr "Viernes"
+
+#. Programmer's name for it: SLongDayNameSat\r
+#: Rtl/Sys/SysConst.pas:159 \r
+msgid "Saturday"
+msgstr "Sábado"
+
+#. Programmer's name: FONT 8\r
+#. formAbout..Font.Name\r
+#. formAbout..lblCopyright..Font.Name\r
+#. formAbout..lblPleaseVisitUs..Font.Name\r
+#. formAbout..lblURL..Font.Name\r
+#. IdPropEdBindingEntry..Font.Name\r
+#. formAbout..Font.Name\r
+#. formAbout..Panel1..lblPleaseVisitUs..Font.Name\r
+#. formAbout..Panel1..lblURL..Font.Name\r
+#. formAbout..Panel2..lblCopyright..Font.Name\r
+#. frmNewMessagePart..Font.Name\r
+#. IdPropEdBindingEntry..Font.Name\r
+#. Form1..Font.Name\r
+#. LogDetailFrame..ActionList1..FontEdit1..Dialog.Font.Name\r
+#. AboutBox..DetailsPanel..Copyright..Font.Name\r
+#. AboutBox..DetailsPanel..Version..Font.Name\r
+#. AboutBox..DetailsPanel..SKUName..Font.Name\r
+#. AboutBox..DetailsPanel..CompanyName..Font.Name\r
+#. StandardActions..ActionList1..FontEdit1..Dialog.Font.Name\r
+#. frmGeneratorEditor..Font.Name\r
+#. frmIBRestoreEditor..Font.Name\r
+#. frmIBSecurityEditor..Font.Name\r
+#. frmIBServiceEditor..Font.Name\r
+#: Vcl/ExtDlgs.rc:14 \r Indy/IdAbout.xfm:20 Indy/IdAbout.xfm:2805
+#: Indy/IdAbout.xfm:2844 Indy/IdAbout.xfm:2864 Indy/IdDsnPropEdBinding.xfm:15
+#: Indy/IdAbout.dfm:13 Indy/IdAbout.dfm:38 Indy/IdAbout.dfm:55
+#: Indy/IdAbout.dfm:100 Indy/IdDsnNewMessagePart.dfm:12
+#: Indy/IdDsnPropEdBinding.dfm:14 Internet/SvrInfoConsole.dfm:11
+#: Internet/SvrLogDetailFrame.dfm:54 Internet/WebAppDbgAbout.dfm:84
+#: Internet/WebAppDbgAbout.dfm:98 Internet/WebAppDbgAbout.dfm:112
+#: Internet/WebAppDbgAbout.dfm:301 Vcl/ActnRes.dfm:216
+#: Vcl/IBGeneratorEditor.dfm:12 Vcl/IBRestoreEditor.dfm:12
+#: Vcl/IBSecurityEditor.dfm:11 Vcl/IBServiceEditor.dfm:11
+msgid "MS Sans Serif"
+msgstr ""
+
+#. LoginDialog..Caption\r
+#: Clx/QDBLogDlg.xfm:7 \r Vcl/DBLOGDLG.dfm:6
+msgid "Database Login"
+msgstr "Entrada a la base de datos"
+
+#. LoginDialog..OKButton..Caption\r
+#. PasswordDialog..OKButton..Caption\r
+#. ClxStrEditDlg..OKButton..Caption\r
+#. InputReqDialog..OKButton..Caption\r
+#. DataBindForm..OkBtn..Caption\r
+#. StrEditDlg..OKButton..Caption\r
+#. UpdateSQLEditForm..OkButton..Caption\r
+#. LoginDialog..OKButton..Caption\r
+#. PasswordDialog..OKButton..Caption\r
+#: Clx/QDBLogDlg.xfm:20 \r Clx/QDBPWDlg.xfm:20 Property\r
+#: Editors/ClxStrEdit.xfm:42 Editors/dbinpreq.dfm:18 Editors/DbOleEdt.dfm:109
+#: Editors/StrEdit.dfm:39 Editors/UpdSqlEd.dfm:20 Vcl/DBLOGDLG.dfm:21
+#: Vcl/DbPWDlg.dfm:18
+msgid "&OK"
+msgstr "&Aceptar"
+
+#. LoginDialog..Panel..Label3..Caption\r
+#: Clx/QDBLogDlg.xfm:56 \r Vcl/DBLOGDLG.dfm:49
+msgid "Database:"
+msgstr "Base de datos:"
+
+#. LoginDialog..Panel..Panel1..Label1..Caption\r
+#. frmIBSecurityEditor..GroupBox1..Label2..Caption\r
+#. frmIBServiceEditor..GroupBox1..Label2..Caption\r
+#: Clx/QDBLogDlg.xfm:81 \r Vcl/DBLOGDLG.dfm:77 Vcl/IBSecurityEditor.dfm:136
+#: Vcl/IBServiceEditor.dfm:159
+msgid "&User Name:"
+msgstr "Nombre de &usuario: "
+
+#. LoginDialog..Panel..Panel1..Label2..Caption\r
+#: Clx/QDBLogDlg.xfm:91 \r Vcl/DBLOGDLG.dfm:85
+msgid "&Password:"
+msgstr "&Contraseña: "
+
+#. PasswordDialog..Caption\r
+#: Clx/QDBPWDlg.xfm:7 \r Vcl/DbPWDlg.dfm:6
+msgid "Enter password"
+msgstr "Entrada de contraseña"
+
+#. PasswordDialog..GroupBox1..AddButton..Caption\r
+#. IdPropEdBindingEntry..btnAdd..Caption\r
+#. IdPropEdBindingEntry..actBndEditor..actAdd..Caption\r
+#. DSSQueryEditor..Pager..Dimensions..Label7..Caption\r
+#. IdPropEdBindingEntry..actBndEditor..actAdd..Caption\r
+#. CollectionEditor..ActionList1..AddCmd..Caption\r
+#. LinkFields..AddButton..Caption\r
+#. PasswordDialog..GroupBox1..AddButton..Caption\r
+#. SocketForm..MainMenu1..miPorts..miAdd..Caption\r
+#: Clx/QDBPWDlg.xfm:57 \r Indy/IdDsnPropEdBinding.xfm:87
+#: Indy/IdDsnPropEdBinding.xfm:123 Decision\r Cube/MXDSSQRY.DFM:78
+#: Indy/IdDsnPropEdBinding.dfm:113 Property\r Editors/ColnEdit.dfm:189
+#: Editors/FldLinks.DFM:114 Vcl/DbPWDlg.dfm:56 Vcl/ScktMain.dfm:344
+msgid "&Add"
+msgstr ""
+
+#. PasswordDialog..GroupBox1..RemoveButton..Caption\r
+#. IdPropEdBindingEntry..btnRemove..Caption\r
+#. IdPropEdBindingEntry..actBndEditor..actRemove..Caption\r
+#. PasswordDialog..GroupBox1..RemoveButton..Caption\r
+#. SocketForm..ActionList1..RemovePortAction..Caption\r
+#: Clx/QDBPWDlg.xfm:67 \r Indy/IdDsnPropEdBinding.xfm:96
+#: Indy/IdDsnPropEdBinding.xfm:128 Indy/IdDsnPropEdBinding.dfm:118
+#: Vcl/DbPWDlg.dfm:66 Vcl/ScktMain.dfm:396
+msgid "&Remove"
+msgstr ""
+
+#. PasswordDialog..GroupBox1..RemoveAllButton..Caption\r
+#: Clx/QDBPWDlg.xfm:77 \r Vcl/DbPWDlg.dfm:76
+msgid "Re&move all"
+msgstr ""
+
+#. formAbout..Caption\r
+#: Indy/IdAbout.xfm:11 \r
+msgid "About Indy"
+msgstr "Acerca de Indy"
+
+#. formAbout..lblName..Font.Name\r
+#. formAbout..lblVersion..Font.Name\r
+#. formAbout..Panel2..lblVersion..Font.Name\r
+#. formAbout..Panel2..lblName..Font.Name\r
+#: Indy/IdAbout.xfm:2786 \r Indy/IdAbout.xfm:2825 Indy/IdAbout.dfm:117
+#: Indy/IdAbout.dfm:133
+msgid "Times New Roman"
+msgstr ""
+
+#. formAbout..lblURL..Caption\r
+#: Indy/IdAbout.xfm:2860 \r
+#, fuzzy
+msgid "http://www.nevrona.com/indy"
+msgstr "http://www.nevrona.com/indy/"
+
+#. formAbout..scbxCredits..panlScroll..lblJimGunkel..Caption\r
+#: Indy/IdAbout.xfm:2894 \r
+msgid "Jim Gunkel"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblJimGunkel..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaDesignsFour..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblKudzu..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaOne..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblHadi..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaTwo..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblAndrewPeeMee..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblCharlesStack..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblGregorIbic..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblIntelicomdoo..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblJPeterMugaas..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaThree..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblMarkHolmes..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblRuneMoberg..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblStephaneGrobety..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblDonSIders..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblAllenOneil..Font.Name\r
+#: Indy/IdAbout.xfm:2898 \r Indy/IdAbout.xfm:2918 Indy/IdAbout.xfm:2957
+#: Indy/IdAbout.xfm:2977 Indy/IdAbout.xfm:3016 Indy/IdAbout.xfm:3036
+#: Indy/IdAbout.xfm:3076 Indy/IdAbout.xfm:3096 Indy/IdAbout.xfm:3116
+#: Indy/IdAbout.xfm:3136 Indy/IdAbout.xfm:3156 Indy/IdAbout.xfm:3176
+#: Indy/IdAbout.xfm:3196 Indy/IdAbout.xfm:3216 Indy/IdAbout.xfm:3236
+#: Indy/IdAbout.xfm:3276 Indy/IdAbout.xfm:3316
+msgid "Courier New"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblNevronaDesignsFour..Caption\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaOne..Caption\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaTwo..Caption\r
+#. formAbout..scbxCredits..panlScroll..lblNevronaThree..Caption\r
+#: Indy/IdAbout.xfm:2914 \r Indy/IdAbout.xfm:2973 Indy/IdAbout.xfm:3032
+#: Indy/IdAbout.xfm:3172
+msgid "Nevrona Designs"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lbCoordinator..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lbCoCordinator..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblIndyPitCrew..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblDocumentCoordinator..Font.Name\r
+#. formAbout..scbxCredits..panlScroll..lblProgramsCoordinator..Font.Name\r
+#: Indy/IdAbout.xfm:2937 \r Indy/IdAbout.xfm:2996 Indy/IdAbout.xfm:3056
+#: Indy/IdAbout.xfm:3256 Indy/IdAbout.xfm:3296
+#, fuzzy
+msgid "Arial"
+msgstr "Abril"
+
+#. formAbout..scbxCredits..panlScroll..lblKudzu..Caption\r
+#: Indy/IdAbout.xfm:2953 \r
+msgid "Kudzu (Chad Z. Hower)"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblHadi..Caption\r
+#: Indy/IdAbout.xfm:3012 \r
+msgid "Hadi Hariri"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblIndyPitCrew..Caption\r
+#: Indy/IdAbout.xfm:3052 \r
+msgid "The Indy Crew"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblAndrewPeeMee..Caption\r
+#: Indy/IdAbout.xfm:3072 \r
+msgid "Andrew Peter Mee"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblCharlesStack..Caption\r
+#: Indy/IdAbout.xfm:3092 \r
+msgid "Charles Stack"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblGregorIbic..Caption\r
+#: Indy/IdAbout.xfm:3112 \r
+msgid "Gregor Ibic"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblIntelicomdoo..Caption\r
+#: Indy/IdAbout.xfm:3132 \r
+msgid "Intelicom d.o.o."
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblJPeterMugaas..Caption\r
+#: Indy/IdAbout.xfm:3152 \r
+msgid "J. Peter Mugaas"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblMarkHolmes..Caption\r
+#: Indy/IdAbout.xfm:3192 \r
+msgid "Mark Holmes"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblRuneMoberg..Caption\r
+#: Indy/IdAbout.xfm:3212 \r
+msgid "Rune Moberg"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblDocumentCoordinator..Caption\r
+#: Indy/IdAbout.xfm:3252 \r
+msgid "Documentation Coordinator"
+msgstr "Coordinador de la documentación"
+
+#. formAbout..scbxCredits..panlScroll..lblDonSIders..Caption\r
+#: Indy/IdAbout.xfm:3272 \r
+msgid "Don Siders"
+msgstr ""
+
+#. formAbout..scbxCredits..panlScroll..lblProgramsCoordinator..Caption\r
+#: Indy/IdAbout.xfm:3292 \r
+msgid "Demo  Programs Coordinator"
+msgstr "Coordinador de los programas demo"
+
+#. formAbout..scbxCredits..panlScroll..lblAllenOneil..Caption\r
+#: Indy/IdAbout.xfm:3312 \r
+msgid "Allen O'Neill"
+msgstr ""
+
+#. IdPropEdBindingEntry..Caption\r
+#: Indy/IdDsnPropEdBinding.xfm:6 \r Indy/IdDsnPropEdBinding.dfm:5
+msgid "Binding Editor"
+msgstr ""
+
+#. IdPropEdBindingEntry..Label1..Caption\r
+#: Indy/IdDsnPropEdBinding.xfm:28 \r Indy/IdDsnPropEdBinding.dfm:25
+msgid "Bindings"
+msgstr ""
+
+#. IdPropEdBindingEntry..Label2..Caption\r
+#. SocketForm..Pages..StatPage..ConnectionList......Caption\r
+#: Indy/IdDsnPropEdBinding.xfm:36 \r Indy/IdDsnPropEdBinding.dfm:32
+#: Vcl/ScktMain.dfm:252
+msgid "IP Address"
+msgstr "Dirección IP"
+
+#. IdPropEdBindingEntry..Label3..Caption\r
+#. WebAppDbgMainForm..Port..Caption\r
+#. SocketForm..Pages..PropPage..PortGroup..Caption\r
+#. SocketForm..Pages..StatPage..ConnectionList......Caption\r
+#. SocketForm..Panel1..HeaderControl1......Text\r
+#: Indy/IdDsnPropEdBinding.xfm:44 \r Indy/IdDsnPropEdBinding.dfm:39
+#: Internet/SvrMainForm.dfm:57 Vcl/ScktMain.dfm:38 Vcl/ScktMain.dfm:248
+#: Vcl/ScktMain.dfm:310
+msgid "Port"
+msgstr ""
+
+#. ClxIconViewItemsEditor..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:7 \r
+msgid "IconView Items Editor"
+msgstr ""
+
+#. ClxIconViewItemsEditor..GroupBox1..Caption\r
+#. ClxListViewItems..GroupBox1..Caption\r
+#. ClxTreeViewItems..GroupBox1..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:22 \r Editors/ClxItemEdit.xfm:22
+#: Editors/ClxNodeEdit.xfm:22
+msgid "&Items"
+msgstr ""
+
+#. ClxIconViewItemsEditor..GroupBox1..New..Caption\r
+#. ClxListViewItems..GroupBox1..New..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:30 \r Editors/ClxItemEdit.xfm:30
+msgid "&New Item"
+msgstr ""
+
+#. ClxIconViewItemsEditor..GroupBox1..Delete..Caption\r
+#. ClxImageListEditor..GroupBox1..Delete..Caption\r
+#. ClxListViewItems..GroupBox1..Delete..Caption\r
+#. ClxTreeViewItems..GroupBox1..Delete..Caption\r
+#. CollectionEditor..ActionList1..DeleteCmd..Caption\r
+#. DataBindForm..Panel1..DeleteBtn..Caption\r
+#. FieldsEditor..LocalMenu..DeleteItem..Caption\r
+#. LinkFields..DeleteButton..Caption\r
+#. IndexFiles..GroupBox1..Delete..Caption\r
+#. StandardActions..ActionList1..EditDelete1..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:41 \r Editors/ClxImgEdit.xfm:184
+#: Editors/ClxItemEdit.xfm:41 Editors/ClxNodeEdit.xfm:41
+#: Editors/ColnEdit.dfm:196 Editors/DbOleEdt.dfm:90 Editors/DSDesign.dfm:159
+#: Editors/FldLinks.DFM:123 Editors/Ixedit.dfm:43 Vcl/ActnRes.dfm:66
+msgid "&Delete"
+msgstr ""
+
+#. ClxIconViewItemsEditor..PropGroupBox..Caption\r
+#. ClxListViewItems..PropGroupBox..Caption\r
+#. ClxTreeViewItems..PropGroupBox..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:69 \r Editors/ClxItemEdit.xfm:79
+#: Editors/ClxNodeEdit.xfm:89
+msgid "Item Properties"
+msgstr ""
+
+#. ClxIconViewItemsEditor..PropGroupBox..Label1..Caption\r
+#. ClxListViewItems..PropGroupBox..Label1..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:77 \r Editors/ClxItemEdit.xfm:87
+msgid "&Caption:"
+msgstr ""
+
+#. ClxIconViewItemsEditor..PropGroupBox..Label2..Caption\r
+#. ClxListViewItems..PropGroupBox..Label2..Caption\r
+#. ClxTreeViewItems..PropGroupBox..Label2..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:87 \r Editors/ClxItemEdit.xfm:96
+#: Editors/ClxNodeEdit.xfm:105
+msgid "I&mage Index:"
+msgstr ""
+
+#. ClxIconViewItemsEditor..Apply..Caption\r
+#. ClxListViewItems..Apply..Caption\r
+#. ClxTreeViewItems..Apply..Caption\r
+#. SocketForm..ActionList1..ApplyAction..Caption\r
+#: Property\r Editors/ClxIconEdit.xfm:143 \r Editors/ClxItemEdit.xfm:169
+#: Editors/ClxNodeEdit.xfm:179 Vcl/ScktMain.dfm:381
+msgid "&Apply"
+msgstr ""
+
+#. ClxImageListEditor..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:10 \r
+msgid "ImageList Editor"
+msgstr ""
+
+#. ClxImageListEditor..ImageGroup..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:50 \r
+msgid " &Selected Image "
+msgstr ""
+
+#. ClxImageListEditor..ImageGroup..TransparentLabel..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:58 \r
+msgid "&Transparent Color:"
+msgstr ""
+
+#. ClxImageListEditor..ImageGroup..FillLabel..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:67 \r
+msgid "&Fill Color:"
+msgstr ""
+
+#. ClxImageListEditor..ImageGroup..OptionsGroup....Items.Strings\r
+#: Property\r Editors/ClxImgEdit.xfm:79 \r
+msgid ""
+"Cr&op\n"
+"St&retch\n"
+"C&enter\n"
+msgstr ""
+
+#. ClxImageListEditor..ImageGroup..OptionsGroup..Caption\r
+#. DBEditForm..GroupBox3..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:80 \r Editors/Dbedit.dfm:116
+msgid " Options "
+msgstr ""
+
+#. ClxImageListEditor..Apply..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:133 \r
+msgid "A&pply"
+msgstr ""
+
+#. ClxImageListEditor..GroupBox1..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:153 \r
+msgid " &Images "
+msgstr ""
+
+#. ClxImageListEditor..GroupBox1..Add..Caption\r
+#. IndexFiles..GroupBox1..Add..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:174 \r Editors/Ixedit.dfm:34
+msgid "&Add..."
+msgstr ""
+
+#. ClxImageListEditor..GroupBox1..Clear..Caption\r
+#. Caption\r
+#. ClxStrEditDlg..PopupMenu1..Clear1..Caption\r
+#. LogFrame..ActionList1..ClearAction..Caption\r
+#. WebAppDbgMainForm..ActionList1..ClearAction..Caption\r
+#. DBEditForm..GroupBox1..ClearButton..Caption\r
+#. LinkFields..ClearButton..Caption\r
+#. IndexFiles..GroupBox1..Clear..Caption\r
+#. PictureEditorDlg..GroupBox1..Clear..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:195 \r Editors/ClxPicEdit.xfm:93
+#: Editors/ClxStrEdit.xfm:115 Internet/SvrLogFrame.dfm:40
+#: Internet/SvrMainForm.dfm:166 Editors/Dbedit.dfm:99 Editors/FldLinks.DFM:132
+#: Editors/Ixedit.dfm:53 Editors/PicEdit.dfm:94
+msgid "&Clear"
+msgstr ""
+
+#. ClxImageListEditor..GroupBox1..ExportBtn..Caption\r
+#: Property\r Editors/ClxImgEdit.xfm:206 \r
+msgid "E&xport..."
+msgstr "E&xportar..."
+
+#. ClxImageListEditor..OpenDialog..DefaultExt\r
+#. ClxImageListEditor..SaveDialog..DefaultExt\r
+#: Property\r Editors/ClxImgEdit.xfm:215 \r Editors/ClxImgEdit.xfm:227
+msgid "bmp"
+msgstr "bmp"
+
+#. ClxImageListEditor..OpenDialog....DefaultExt\r
+#: Property\r Editors/ClxImgEdit.xfm:219 \r
+msgid ""
+"All (*.bmp; *.ico; *.png; *.xpm)|Bitmaps (*.bmp)|Icons (*.ico)|PNG's (*.png)|"
+"X Pixmaps (*.xpm)\n"
+msgstr ""
+
+#. ClxImageListEditor..OpenDialog..Title\r
+#: Property\r Editors/ClxImgEdit.xfm:220 \r
+msgid "Add Images"
+msgstr ""
+
+#. ClxImageListEditor..SaveDialog..Filter\r
+#: Property\r Editors/ClxImgEdit.xfm:228 \r
+msgid "Bitmaps (*.bmp)"
+msgstr "Mapas de bits (*.bmp)"
+
+#. ClxImageListEditor..SaveDialog..Title\r
+#: Property\r Editors/ClxImgEdit.xfm:230 \r
+msgid "Export Images"
+msgstr "Exportar imágenes"
+
+#. ClxListViewItems..Caption\r
+#: Property\r Editors/ClxItemEdit.xfm:7 \r
+msgid "ListView Items Editor"
+msgstr ""
+
+#. ClxListViewItems..GroupBox1..NewSub..Caption\r
+#: Property\r Editors/ClxItemEdit.xfm:51 \r
+msgid "N&ew SubItem"
+msgstr ""
+
+#. ClxListViewItems..PropGroupBox..Label3..Caption\r
+#: Property\r Editors/ClxItemEdit.xfm:105 \r
+msgid "&State Index:"
+msgstr ""
+
+#. ClxTreeViewItems..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:8 \r
+msgid "TreeView Items Editor"
+msgstr ""
+
+#. ClxTreeViewItems..GroupBox1..New..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:30 \r
+msgid "&New Node"
+msgstr ""
+
+#. ClxTreeViewItems..GroupBox1..NewSub..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:51 \r
+msgid "N&ew SubNode"
+msgstr ""
+
+#. ClxTreeViewItems..GroupBox1..Load..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:61 \r
+msgid "&Load"
+msgstr ""
+
+#. ClxTreeViewItems..PropGroupBox..Label1..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:96 \r
+msgid "&Text:"
+msgstr ""
+
+#. ClxTreeViewItems..PropGroupBox..Label4..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:114 \r
+msgid "&Selected Index:"
+msgstr ""
+
+#. ClxTreeViewItems..gbSubItems..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:199 \r
+msgid "Sub Items"
+msgstr ""
+
+#. ClxTreeViewItems..gbSubItems..btnAddSub..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:216 \r
+msgid "Add SubItem"
+msgstr ""
+
+#. ClxTreeViewItems..gbSubItemProps..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:237 \r
+msgid "Sub Item Properties"
+msgstr ""
+
+#. ClxTreeViewItems..gbSubItemProps..lblSubText..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:264 \r
+msgid "Text:"
+msgstr ""
+
+#. ClxTreeViewItems..gbSubItemProps..lblSubImgIndex..Caption\r
+#: Property\r Editors/ClxNodeEdit.xfm:272 \r
+msgid "Image Index:"
+msgstr ""
+
+#. ClxTreeViewItems..OpenDialog1..Filter\r
+#: Property\r Editors/ClxNodeEdit.xfm:277 \r
+msgid "All Files(*)"
+msgstr ""
+
+#. ClxPictureEditorDlg..Caption\r
+#. PictureEditorDlg..Caption\r
+#: Property\r Editors/ClxPicEdit.xfm:9 \r Editors/PicEdit.dfm:6
+msgid "Picture Editor"
+msgstr ""
+
+#. Caption\r
+#. ClxStrEditDlg..PopupMenu1..Load1..Caption\r
+#. PictureEditorDlg..GroupBox1..Load..Caption\r
+#. StrEditDlg..StringEditorMenu..LoadItem..Caption\r
+#: Property\r Editors/ClxPicEdit.xfm:73 \r Editors/ClxStrEdit.xfm:105
+#: Editors/PicEdit.dfm:76 Editors/StrEdit.dfm:76
+msgid "&Load..."
+msgstr ""
+
+#. Caption\r
+#. ClxStrEditDlg..PopupMenu1..Save1..Caption\r
+#. PictureEditorDlg..GroupBox1..Save..Caption\r
+#. StrEditDlg..StringEditorMenu..SaveItem..Caption\r
+#: Property\r Editors/ClxPicEdit.xfm:83 \r Editors/ClxStrEdit.xfm:110
+#: Editors/PicEdit.dfm:85 Editors/StrEdit.dfm:80
+msgid "&Save..."
+msgstr ""
+
+#. ClxStrEditDlg..Caption\r
+#: Property\r Editors/ClxStrEdit.xfm:10 \r
+msgid "String list editor"
+msgstr ""
+
+#. ClxStrEditDlg..LineCount..Caption\r
+#. StringsEditDlg..LineCount..Caption\r
+#: Property\r Editors/ClxStrEdit.xfm:33 \r Editors/StringsEdit.dfm:13
+msgid "0 lines"
+msgstr ""
+
+#. ClxStrEditDlg..OpenDialog....HelpContext\r
+#. ClxStrEditDlg..SaveDialog....DefaultExt\r
+#: Property\r Editors/ClxStrEdit.xfm:85 \r Editors/ClxStrEdit.xfm:96
+msgid ""
+"Text files (*.txt)|Config files (*.conf)|Shell scripts (*.sh)|All files (*)\n"
+msgstr ""
+
+#. ClxStrEditDlg..OpenDialog..Title\r
+#. StrEditDlg..OpenDialog..Title\r
+#: Property\r Editors/ClxStrEdit.xfm:85 \r Editors/StrEdit.dfm:61
+msgid "Load string list"
+msgstr ""
+
+#. ClxStrEditDlg..SaveDialog..DefaultExt\r
+#: Property\r Editors/ClxStrEdit.xfm:92 \r
+msgid "txt"
+msgstr "txt"
+
+#. ClxStrEditDlg..SaveDialog..Title\r
+#. StrEditDlg..SaveDialog..Title\r
+#: Property\r Editors/ClxStrEdit.xfm:97 \r Editors/StrEdit.dfm:70
+msgid "Save string list"
+msgstr ""
+
+#. DSSCubeEditor..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:6 \r
+msgid "Decision Cube Editor"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:27 \r
+msgid "Dimension Settings"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..CaptionLabel..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:34 \r
+msgid "Display &Name"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..ActiveLabel..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:43 \r
+msgid "&Active Type"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BinLabel..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:52 \r
+msgid "&Grouping"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..StartLabel..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:61 \r
+msgid "&Initial Value"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..TypeLabel..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:70 \r
+msgid "&Type"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..Label1..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:79 \r
+msgid "Available &Fields"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..Label2..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:88 \r
+msgid "For&mat"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BaseNameLabel..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:105 \r
+msgid "&Base Field"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..CaptionEdit..Text\r
+#: Decision\r Cube/MXDCUBE.DFM:125 \r
+msgid "CaptionEdit"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..ActiveEdit..Hint\r
+#: Decision\r Cube/MXDCUBE.DFM:133 \r
+msgid "Control of when the information for this field is loaded"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..ActiveEdit..Text\r
+#: Decision\r Cube/MXDCUBE.DFM:138 \r
+msgid "ActiveEdit"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..ActiveEdit....Items.Strings\r
+#: Decision\r Cube/MXDCUBE.DFM:144 \r
+msgid ""
+"Active\n"
+"As Needed\n"
+"Inactive\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BinEdit..Hint\r
+#: Decision\r Cube/MXDCUBE.DFM:150 \r
+msgid "Group values for this field into ranges"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BinEdit..Text\r
+#: Decision\r Cube/MXDCUBE.DFM:155 \r
+msgid "BinEdit"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BinEdit....Items.Strings\r
+#: Decision\r Cube/MXDCUBE.DFM:163 \r
+msgid ""
+"None\n"
+"Year\n"
+"Quarter\n"
+"Month\n"
+"Single Value\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..TypeEdit..Text\r
+#: Decision\r Cube/MXDCUBE.DFM:173 \r
+msgid "TypeEdit"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..TypeEdit....Items.Strings\r
+#: Decision\r Cube/MXDCUBE.DFM:184 \r
+msgid ""
+"Dimension\n"
+"Sum\n"
+"Count\n"
+"Average\n"
+"Min\n"
+"Max\n"
+"GenericAgg\n"
+"Unknown\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..FormatEdit..Text\r
+#: Decision\r Cube/MXDCUBE.DFM:193 \r
+msgid "FormatEdit"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..StartEdit....Height\r
+#: Decision\r Cube/MXDCUBE.DFM:204 \r
+msgid ""
+"Starting value for date ranges, Intial value for single valued dimensions\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BaseNameEdit....Height\r
+#: Decision\r Cube/MXDCUBE.DFM:217 \r
+msgid ""
+"Fieldname (for a summary, the original field used to calculate the summary)\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..DimensionInfo..BaseNameEdit..Text\r
+#: Decision\r Cube/MXDCUBE.DFM:220 \r
+msgid "BaseNameEdit"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:226 \r
+msgid "Memory Control"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Panel1..Hint\r
+#: Decision\r Cube/MXDCUBE.DFM:232 \r
+msgid "Control whether to load the decision cube at design time"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Panel1..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:233 \r
+msgid "Designer Data Options"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Panel1..RadioMetaData..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:242 \r
+msgid "Display Dimension &Names"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Panel1..RadioDimensionData..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:253 \r
+msgid "Display Names and &Values"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Panel1..RadioAllData..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:262 \r
+msgid "Display Names, Values, and &Totals"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..Panel1..RadioNoData..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:271 \r
+msgid "&Run Time Display Only"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:281 \r
+msgid "Cube Maximums"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label4..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:307 \r
+msgid "Active"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label7..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:315 \r
+msgid "Active+Needed"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label9..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:323 \r
+msgid "&Dimensions"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label6..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:351 \r
+msgid "&Summaries"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label12..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:361 \r
+msgid "&Cells"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label5..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:379 \r
+msgid "Maximum"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..Label3..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:387 \r
+msgid "Current"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..MaxDims....Height\r
+#: Decision\r Cube/MXDCUBE.DFM:424 \r
+msgid "Limit on the number of dimensions which can be loaded at one time\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..MaxSums..Hint\r
+#: Decision\r Cube/MXDCUBE.DFM:433 \r
+msgid "Limit on the number of summaries which can be loaded at one time"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..MaxCells....Height\r
+#: Decision\r Cube/MXDCUBE.DFM:446 \r
+msgid "Limit on the number of storage cells which can be loaded at one time\n"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..GetCellCounts..Hint\r
+#: Decision\r Cube/MXDCUBE.DFM:455 \r
+msgid "Run a query to fetch information required to estimate cell usage"
+msgstr ""
+
+#. DSSCubeEditor..Pager..MemoryControl..CubeLimits..GetCellCounts..Caption\r
+#: Decision\r Cube/MXDCUBE.DFM:456 \r
+msgid "&Get Cell Counts"
+msgstr ""
+
+#. DimEditor..Caption\r
+#. FieldsEditor..Caption\r
+#: Decision\r Cube/MXDESIGN.DFM:6 \r Cube/MXDIMEDT.DFM:7 Property\r
+#: Editors/DSDesign.dfm:8
+msgid "Form1.Table1"
+msgstr ""
+
+#. SQLWindow..Caption\r
+#: Decision\r Cube/MXDSQL.DFM:6 \r
+msgid "Form2"
+msgstr ""
+
+#. SQLWindow..Memo1....Lines.Strings\r
+#. LogDetailFrame..Memo1....Lines.Strings\r
+#: Decision\r Cube/MXDSQL.DFM:32 \r Internet/SvrLogDetailFrame.dfm:18
+msgid "Memo1\n"
+msgstr ""
+
+#. DSSQueryEditor..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:6 \r
+msgid "Decision Query Editor"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:25 \r
+msgid "Dimensions/Summaries"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..Label2..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:32 \r
+msgid "&Dimensions:"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..Label3..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:41 \r
+msgid "&Summaries:"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..Label4..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:50 \r
+msgid "&List of Available Fields:"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..Label5..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:59 \r
+msgid "&Table:"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..Label6..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:68 \r
+msgid "Databas&e:"
+msgstr "Bas&e de datos"
+
+#. DSSQueryEditor..Pager..Dimensions..SelectAllFields..Hint\r
+#: Decision\r Cube/MXDSSQRY.DFM:131 \r
+msgid "List all fields or List only the fields in the query"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..SelectAllFields..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:132 \r
+msgid "All &Fields"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..TableCombo..Hint\r
+#: Decision\r Cube/MXDSSQRY.DFM:143 \r
+msgid "Start a new query using a table from the database"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..CountStarAvg..Hint\r
+#: Decision\r Cube/MXDSSQRY.DFM:253 \r
+msgid "Use count(*) to calculate averages (counts null values)"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Dimensions..CountStarAvg..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:254 \r
+msgid "Count (*) for Averages"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Query..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:263 \r
+msgid "SQL Query"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Query..Label1..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:270 \r
+msgid "&Query Text:"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Query..CancelQryMod..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:289 \r
+msgid "&Cancel Edit"
+msgstr ""
+
+#. DSSQueryEditor..Pager..Query..EditQry..Hint\r
+#: Decision\r Cube/MXDSSQRY.DFM:298 \r
+msgid "Type in the query directly"
+msgstr ""
+
+#. DSSQueryEditor..VQB..Hint\r
+#: Decision\r Cube/MXDSSQRY.DFM:342 \r
+msgid "Add/Join Tables and Create Field List with SQL Builder"
+msgstr ""
+
+#. DSSQueryEditor..VQB..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:343 \r
+msgid "SQL &Builder ..."
+msgstr "Constructor S&QL..."
+
+#. DSSQueryEditor..AggPopup..count1..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:353 \r
+msgid "&sum"
+msgstr ""
+
+#. DSSQueryEditor..AggPopup..count2..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:357 \r
+msgid "&count"
+msgstr ""
+
+#. DSSQueryEditor..AggPopup..average1..Caption\r
+#: Decision\r Cube/MXDSSQRY.DFM:361 \r
+msgid "&average"
+msgstr ""
+
+#. ProgressDialog..Caption\r
+#: Decision\r Cube/MXPBAR.DFM:6 \r
+msgid "ProgressDialog"
+msgstr ""
+
+#. ProgressDialog..CancelButton..Caption\r
+#. DataBindForm..CancelBtn..Caption\r
+#: Decision\r Cube/MXPBAR.DFM:29 \r Property\r Editors/DbOleEdt.dfm:119
+msgid "&Cancel"
+msgstr ""
+
+#. ProgressDialog..StatusText..Caption\r
+#: Decision\r Cube/MXPBAR.DFM:40 \r
+msgid "StatusText"
+msgstr ""
+
+#. formAbout..Caption\r
+#: Indy/IdAbout.dfm:6 \r
+msgid "formAbout"
+msgstr "Referencia"
+
+#. frmNewMessagePart..Caption\r
+#: Indy/IdDsnNewMessagePart.dfm:5 \r
+msgid "New Message Part"
+msgstr "&Nueva parte del mensaje"
+
+#. frmNewMessagePart..Panel2..btnOk..Caption\r
+#: Indy/IdDsnNewMessagePart.dfm:31 \r
+msgid "Ok"
+msgstr ""
+
+#. frmNewMessagePart..lbTypes....Items.Strings\r
+#: Indy/IdDsnNewMessagePart.dfm:59 \r
+msgid ""
+"Attachment\n"
+"Text\n"
+msgstr ""
+
+#. StubActionModule......Name\r
+#. WebModule2......Name\r
+#: Internet/StubAction.dfm:6 \r Internet/SvrInfoModule.dfm:6
+msgid "WebActionItem1"
+msgstr ""
+
+#. Form1..Caption\r
+#: Internet/SvrInfoConsole.dfm:6 \r
+msgid "ServerInfo"
+msgstr ""
+
+#. WebModule2......PathInfo\r
+#: Internet/SvrInfoModule.dfm:7 \r
+msgid "/List"
+msgstr "/List"
+
+#. WebModule2......Name\r
+#: Internet/SvrInfoModule.dfm:11 \r
+msgid "WebActionItem2"
+msgstr ""
+
+#. WebModule2......PathInfo\r
+#: Internet/SvrInfoModule.dfm:12 \r
+msgid "/Clean"
+msgstr "/Clean"
+
+#. WebModule2......Name\r
+#: Internet/SvrInfoModule.dfm:16 \r
+msgid "WebActionItem3"
+msgstr ""
+
+#. WebModule2......PathInfo\r
+#: Internet/SvrInfoModule.dfm:17 \r
+msgid "/Details"
+msgstr "/Details"
+
+#. WebModule2..PageProducerSelect......HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:71 \r
+msgid ""
+"<a>View List</a>&nbsp;|&nbsp;<a HREF=\"<#PATH>Details\">View Details</a>\n"
+msgstr ""
+"<a>View List</a>&nbsp;|&nbsp;<a HREF=\"<#PATH>Details\">View Details</a>\n"
+
+#. WebModule2..PageProducerSelect....HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:71 \r
+msgid "<#LIST>"
+msgstr "<#LIST>"
+
+#. WebModule2..PageProducerSelect....HTMLDoc.Strings\r
+#. WebModule2..PageProducerDetails....HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:72 \r Internet/SvrInfoModule.dfm:92
+msgid "</BODY>"
+msgstr "</BODY>"
+
+#. WebModule2..PageProducerSelect....HTMLDoc.Strings\r
+#. WebModule2..PageProducerDetails....HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:73 \r Internet/SvrInfoModule.dfm:93
+msgid "</HTML>"
+msgstr "</HTML>"
+
+#. WebModule2..PageProducerSelect....HTMLDoc.Strings\r
+#. WebModule2..PageProducerDetails....HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:74 \r Internet/SvrInfoModule.dfm:75
+#: Internet/SvrInfoModule.dfm:76 Internet/SvrInfoModule.dfm:94
+msgid " "
+msgstr ""
+
+#. WebModule2..PageProducerDetails......HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:91 \r
+msgid "<a HREF=<#PATH>List>View List</a>&nbsp;|&nbsp;<a>View Details</a>\n"
+msgstr "<a HREF=<#PATH>List>View List</a>&nbsp;|&nbsp;<a>View Details</a>\n"
+
+#. WebModule2..PageProducerDetails....HTMLDoc.Strings\r
+#: Internet/SvrInfoModule.dfm:91 \r
+msgid "<#DETAILS>"
+msgstr "<#DETAILS>"
+
+#. LogDetail..Caption\r
+#: Internet/SvrLogDetailDlg.dfm:8 \r
+msgid "LogDetail"
+msgstr ""
+
+#. LogDetail..LogDetailFrame..cbTranslateText..Caption\r
+#: Internet/SvrLogDetailDlg.dfm:60 \r
+msgid "&Translate Post"
+msgstr ""
+
+#. LogDetail..ActionList1..PrevAction..Caption\r
+#. StandardActions..ActionList1..PreviousTab1..Caption\r
+#: Internet/SvrLogDetailDlg.dfm:70 \r Vcl/ActnRes.dfm:245
+msgid "&Previous"
+msgstr ""
+
+#. LogDetail..ActionList1..NextAction..Caption\r
+#. StandardActions..ActionList1..NextTab1..Caption\r
+#: Internet/SvrLogDetailDlg.dfm:75 \r Vcl/ActnRes.dfm:251
+msgid "&Next"
+msgstr ""
+
+#. LogDetailFrame..cbTranslateText..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:30 \r
+msgid "&Translate Text"
+msgstr ""
+
+#. LogDetailFrame..cbWrapText..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:40 \r
+msgid "&Wrap Text"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..FontEdit1..Category\r
+#. StandardActions..ActionList1..ColorSelect1..Category\r
+#. StandardActions..ActionList1..FontEdit1..Category\r
+#. StandardActions..ActionList1..OpenPicture1..Category\r
+#. StandardActions..ActionList1..SavePicture1..Category\r
+#. StandardActions..ActionList1..PrintDlg1..Category\r
+#. CustomizeFrm..ActionList1..CloseActn..Category\r
+#: Internet/SvrLogDetailFrame.dfm:49 \r Vcl/ActnRes.dfm:205 Vcl/ActnRes.dfm:211
+#: Vcl/ActnRes.dfm:223 Vcl/ActnRes.dfm:229 Vcl/ActnRes.dfm:305
+#: Vcl/CustomizeDlg.dfm:392
+msgid "Dialog"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..FontEdit1..Caption\r
+#. StandardActions..ActionList1..FontEdit1..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:50 \r Vcl/ActnRes.dfm:212
+msgid "Select &Font..."
+msgstr ""
+
+#. LogDetailFrame..ActionList1..FontEdit1..Hint\r
+#. StandardActions..ActionList1..FontEdit1..Hint\r
+#: Internet/SvrLogDetailFrame.dfm:58 \r Vcl/ActnRes.dfm:220
+msgid "Font Select"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditCut1..Caption\r
+#. FieldsEditor..LocalMenu..CutItem..Caption\r
+#. StandardActions..ActionList1..EditCut1..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:63 \r Property\r Editors/DSDesign.dfm:141
+#: Vcl/ActnRes.dfm:13
+msgid "Cu&t"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditCut1..Hint\r
+#. StandardActions..ActionList1..EditCut1..Hint\r
+#: Internet/SvrLogDetailFrame.dfm:64 \r Vcl/ActnRes.dfm:14
+msgid "Cut|Cuts the selection and puts it on the Clipboard"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditCopy1..Caption\r
+#. FieldsEditor..LocalMenu..CopyItem..Caption\r
+#. StandardActions..ActionList1..EditCopy1..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:70 \r Property\r Editors/DSDesign.dfm:147
+#: Vcl/ActnRes.dfm:20
+msgid "&Copy"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditCopy1..Hint\r
+#. StandardActions..ActionList1..EditCopy1..Hint\r
+#: Internet/SvrLogDetailFrame.dfm:71 \r Vcl/ActnRes.dfm:21
+msgid "Copy|Copies the selection and puts it on the Clipboard"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditPaste1..Caption\r
+#. FieldsEditor..LocalMenu..PasteItem..Caption\r
+#. StandardActions..ActionList1..EditPaste1..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:77 \r Property\r Editors/DSDesign.dfm:153
+#: Vcl/ActnRes.dfm:27
+msgid "&Paste"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditPaste1..Hint\r
+#. StandardActions..ActionList1..EditPaste1..Hint\r
+#: Internet/SvrLogDetailFrame.dfm:78 \r Vcl/ActnRes.dfm:28
+msgid "Paste|Inserts Clipboard contents"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditSelectAll1..Caption\r
+#. StandardActions..ActionList1..EditSelectAll1..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:84 \r Vcl/ActnRes.dfm:73
+msgid "Select &All"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditSelectAll1..Hint\r
+#. StandardActions..ActionList1..EditSelectAll1..Hint\r
+#: Internet/SvrLogDetailFrame.dfm:85 \r Vcl/ActnRes.dfm:74
+msgid "Select All|Selects the entire document"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditUndo1..Caption\r
+#. StandardActions..ActionList1..EditUndo1..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:90 \r Vcl/ActnRes.dfm:79
+msgid "&Undo"
+msgstr ""
+
+#. LogDetailFrame..ActionList1..EditUndo1..Hint\r
+#. StandardActions..ActionList1..EditUndo1..Hint\r
+#: Internet/SvrLogDetailFrame.dfm:91 \r Vcl/ActnRes.dfm:80
+msgid "Undo|Reverts the last action"
+msgstr ""
+
+#. LogDetailFrame..PopupMenu1..N1..Caption\r
+#. LogDetailFrame..PopupMenu1..N2..Caption\r
+#. WebAppDbgMainForm..MainMenu1..PropertiesItem..N2..Caption\r
+#. WebAppDbgMainForm..MainMenu1..PropertiesItem..N1..Caption\r
+#. CollectionEditor..PopupMenu1..N2..Caption\r
+#. FieldsEditor..LocalMenu..N1..Caption\r
+#. SocketForm..PopupMenu..N1..Caption\r
+#. SocketForm..MainMenu1..miPorts..N3..Caption\r
+#. SocketForm..MainMenu1..Connections1..N2..Caption\r
+#: Internet/SvrLogDetailFrame.dfm:319 \r Internet/SvrLogDetailFrame.dfm:334
+#: Internet/SvrMainForm.dfm:186 Internet/SvrMainForm.dfm:192 Property\r
+#: Editors/ColnEdit.dfm:183 Editors/DSDesign.dfm:138 Vcl/ScktMain.dfm:323
+#: Vcl/ScktMain.dfm:351 Vcl/ScktMain.dfm:370
+msgid "-"
+msgstr ""
+
+#. LogFrame..ActionList1..DetailAction..Caption\r
+#: Internet/SvrLogFrame.dfm:45 \r
+msgid "&Details..."
+msgstr ""
+
+#. WebAppDbgMainForm..Caption\r
+#. WebAppDbgMainForm..ActionList1..MainUpdateAction..Caption\r
+#: Internet/SvrMainForm.dfm:7 \r Internet/SvrMainForm.dfm:161
+msgid "MainUpdateAction"
+msgstr ""
+
+#. WebAppDbgMainForm..Label2..Caption\r
+#: Internet/SvrMainForm.dfm:29 \r
+msgid "Default URL:"
+msgstr ""
+
+#. WebAppDbgMainForm..Label1..Caption\r
+#: Internet/SvrMainForm.dfm:47 \r
+msgid "Port:"
+msgstr ""
+
+#. WebAppDbgMainForm..PageControl1..TabSheet2..Caption\r
+#: Internet/SvrMainForm.dfm:77 \r
+msgid "Statistics"
+msgstr ""
+
+#. WebAppDbgMainForm..PageControl1..TabSheet1..Caption\r
+#. DlgProperties..PageControl1..TabLog..Caption\r
+#: Internet/SvrMainForm.dfm:89 \r Internet/SvrPropDlg.dfm:124
+msgid "Log"
+msgstr ""
+
+#. WebAppDbgMainForm..PageControl1..TabSheet1..GroupBox1..CheckBox1..Caption\r
+#: Internet/SvrMainForm.dfm:121 \r
+msgid "&Log To List"
+msgstr ""
+
+#. WebAppDbgMainForm..ActionList1..ToggleServerAction..Caption\r
+#: Internet/SvrMainForm.dfm:131 \r
+msgid "Toggle"
+msgstr ""
+
+#. WebAppDbgMainForm..ActionList1..ExitAction..Caption\r
+#. StandardActions..ActionList1..FileExit1..Caption\r
+#: Internet/SvrMainForm.dfm:136 \r Vcl/ActnRes.dfm:103
+msgid "E&xit"
+msgstr "Marchar"
+
+#. WebAppDbgMainForm..ActionList1..StopAction..Caption\r
+#: Internet/SvrMainForm.dfm:140 \r
+msgid "S&top Server"
+msgstr ""
+
+#. WebAppDbgMainForm..ActionList1..StartAction..Caption\r
+#: Internet/SvrMainForm.dfm:145 \r
+msgid "&Start Server"
+msgstr ""
+
+#. WebAppDbgMainForm..ActionList1..AboutAction..Caption\r
+#: Internet/SvrMainForm.dfm:150 \r
+msgid "&About..."
+msgstr "&Acerca de..."
+
+#. WebAppDbgMainForm..ActionList1..PropertiesAction..Caption\r
+#: Internet/SvrMainForm.dfm:154 \r
+msgid "&Options..."
+msgstr ""
+
+#. WebAppDbgMainForm..ActionList1..BrowseAction..Caption\r
+#: Internet/SvrMainForm.dfm:158 \r
+msgid "BrowseAction"
+msgstr ""
+
+#. WebAppDbgMainForm..ActionList1..ToggleLogAction..Caption\r
+#: Internet/SvrMainForm.dfm:169 \r
+msgid "&Log Traffic"
+msgstr ""
+
+#. WebAppDbgMainForm..MainMenu1..PropertiesItem..Caption\r
+#: Internet/SvrMainForm.dfm:178 \r
+msgid "&Server"
+msgstr "&Servidor"
+
+#. DlgProperties..Caption\r
+#. UpdateSQLEditForm..PageControl..FieldsPage..Caption\r
+#. CustomizeFrm..Tabs..OptionsTab..Caption\r
+#. CustomizeFrm..ActionList1..ResetUsageDataActn..Category\r
+#. CustomizeFrm..ActionList1..RecentlyUsedActn..Category\r
+#. CustomizeFrm..ActionList1..FullMenusActn..Category\r
+#. CustomizeFrm..ActionList1..ShowHintsActn..Category\r
+#. CustomizeFrm..ActionList1..ShowShortCutsInTipsActn..Category\r
+#. CustomizeFrm..ActionList1..LargeIconsActn..Category\r
+#: Internet/SvrPropDlg.dfm:6 \r Property\r Editors/UpdSqlEd.dfm:54
+#: Vcl/CustomizeDlg.dfm:260 Vcl/CustomizeDlg.dfm:396 Vcl/CustomizeDlg.dfm:401
+#: Vcl/CustomizeDlg.dfm:407 Vcl/CustomizeDlg.dfm:413 Vcl/CustomizeDlg.dfm:420
+#: Vcl/CustomizeDlg.dfm:432
+msgid "Options"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..Caption\r
+#. frmIBSecurityEditor..GroupBox2..Caption\r
+#. frmIBServiceEditor..GroupBox2..Caption\r
+#: Internet/SvrPropDlg.dfm:52 \r Vcl/IBSecurityEditor.dfm:23
+#: Vcl/IBServiceEditor.dfm:23
+msgid "Connection"
+msgstr "Conexión"
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..Label1..Caption\r
+#: Internet/SvrPropDlg.dfm:68 \r
+msgid "&Port:"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..Label2..Caption\r
+#: Internet/SvrPropDlg.dfm:76 \r
+msgid "&Search Path:"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..Label3..Caption\r
+#: Internet/SvrPropDlg.dfm:84 \r
+msgid "&Default URL:"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..cbPort..Text\r
+#: Internet/SvrPropDlg.dfm:94 \r
+msgid "cbPort"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..cbActiveAtStartup..Caption\r
+#: Internet/SvrPropDlg.dfm:102 \r
+msgid "&Activate at Startup"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..edDefault..Text\r
+#: Internet/SvrPropDlg.dfm:111 \r
+msgid "edDefault"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabConnection..GroupBox1..edPath..Text\r
+#: Internet/SvrPropDlg.dfm:119 \r
+msgid "edPath"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabLog..GroupBox2..Caption\r
+#: Internet/SvrPropDlg.dfm:135 \r
+msgid "Show in Log"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabLog..GroupBox6..Caption\r
+#: Internet/SvrPropDlg.dfm:159 \r
+msgid " Log Size "
+msgstr ""
+
+#. DlgProperties..PageControl1..TabLog..GroupBox6..Label4..Caption\r
+#: Internet/SvrPropDlg.dfm:170 \r
+msgid "Max Events:"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabLog..GroupBox6..Label5..Caption\r
+#: Internet/SvrPropDlg.dfm:178 \r
+msgid "Delete when max exceeded:"
+msgstr ""
+
+#. DlgProperties..PageControl1..TabLog..GroupBox6..edLogMax..Text\r
+#: Internet/SvrPropDlg.dfm:187 \r
+msgid "edLogMax"
+msgstr ""
+
+#. StatsFrame..GroupBox1..Label3..Caption\r
+#: Internet/SvrStatsFrame.dfm:46 \r
+msgid "RequestCount:"
+msgstr ""
+
+#. StatsFrame..GroupBox1..Label5..Caption\r
+#: Internet/SvrStatsFrame.dfm:53 \r
+msgid "Total Response Time:"
+msgstr ""
+
+#. StatsFrame..GroupBox1..Label7..Caption\r
+#: Internet/SvrStatsFrame.dfm:60 \r
+msgid "Avg Response Time:"
+msgstr ""
+
+#. StatsFrame..GroupBox1..Label8..Caption\r
+#: Internet/SvrStatsFrame.dfm:67 \r
+msgid "Last Response Time:"
+msgstr ""
+
+#. StatsFrame..GroupBox1..Label1..Caption\r
+#: Internet/SvrStatsFrame.dfm:74 \r
+msgid "Min Response Time:"
+msgstr "Tiempo mín. de respuesta:"
+
+#. StatsFrame..GroupBox1..Label2..Caption\r
+#: Internet/SvrStatsFrame.dfm:81 \r
+msgid "Max Response Time:"
+msgstr "Tiempo max. de respuesta:"
+
+#. StatsFrame..ActionList1..ResetCountsAction..Caption\r
+#: Internet/SvrStatsFrame.dfm:110 \r
+msgid "&Reset"
+msgstr "Reinicializar"
+
+#. AboutBox..Caption\r
+#: Internet/WebAppDbgAbout.dfm:5 \r
+msgid "About Web App Debugger"
+msgstr ""
+
+#. AboutBox..Label3..Caption\r
+#: Internet/WebAppDbgAbout.dfm:29 \r
+msgid "Memory Available to Windows:"
+msgstr ""
+
+#. AboutBox..OS..Caption\r
+#: Internet/WebAppDbgAbout.dfm:47 \r
+msgid "OS"
+msgstr ""
+
+#. AboutBox..DetailsPanel..Version..Caption\r
+#: Internet/WebAppDbgAbout.dfm:94 \r
+msgid "Version 6.0"
+msgstr "Versión 6.0"
+
+#. AboutBox..DetailsPanel..SKUName..Caption\r
+#: Internet/WebAppDbgAbout.dfm:108 \r
+msgid "Web Application Debugger"
+msgstr ""
+
+#. AboutBox..DetailsPanel..CompanyName..Caption\r
+#: Internet/WebAppDbgAbout.dfm:297 \r
+msgid "Borland Software Corporation"
+msgstr ""
+
+#. ConnEditForm..SourceofConnection..Caption\r
+#: Property\r Editors/AdoConEd.dfm:49 \r
+msgid " Source of Connection "
+msgstr ""
+
+#. ConnEditForm..SourceofConnection..UseDataLinkFile..Caption\r
+#: Property\r Editors/AdoConEd.dfm:57 \r
+msgid "Use Data &Link File"
+msgstr ""
+
+#. ConnEditForm..SourceofConnection..Browse..Caption\r
+#: Property\r Editors/AdoConEd.dfm:77 \r
+msgid "&Browse..."
+msgstr ""
+
+#. ConnEditForm..SourceofConnection..UseConnectionString..Caption\r
+#: Property\r Editors/AdoConEd.dfm:87 \r
+msgid "Use &Connection String"
+msgstr "Usar cadena de conexión"
+
+#. ConnEditForm..SourceofConnection..Build..Caption\r
+#: Property\r Editors/AdoConEd.dfm:105 \r
+msgid "B&uild..."
+msgstr "Construir..."
+
+#. ClientDataForm..Caption\r
+#: Property\r Editors/CDSEdit.dfm:6 \r
+msgid "Client DataSet Data"
+msgstr ""
+
+#. ClientDataForm..GroupBox1..Caption\r
+#: Property\r Editors/CDSEdit.dfm:19 \r
+msgid " Assign Data From "
+msgstr ""
+
+#. CollectionEditor..Caption\r
+#: Property\r Editors/ColnEdit.dfm:10 \r
+msgid "CollectionEditor"
+msgstr ""
+
+#. CollectionEditor..ToolBar1..ToolButton3..Caption\r
+#: Property\r Editors/ColnEdit.dfm:41 \r
+#, fuzzy
+msgid "ToolButton3"
+msgstr "Más botones"
+
+#. CollectionEditor..ActionList1..AddCmd..Hint\r
+#: Property\r Editors/ColnEdit.dfm:190 \r
+msgid "Add New"
+msgstr ""
+
+#. CollectionEditor..ActionList1..DeleteCmd..Hint\r
+#: Property\r Editors/ColnEdit.dfm:198 \r
+msgid "Delete Selected"
+msgstr ""
+
+#. CollectionEditor..ActionList1..MoveUpCmd..Caption\r
+#: Property\r Editors/ColnEdit.dfm:205 \r
+msgid "Move &Up"
+msgstr ""
+
+#. CollectionEditor..ActionList1..MoveUpCmd..Hint\r
+#: Property\r Editors/ColnEdit.dfm:207 \r
+msgid "Move Selected Up"
+msgstr ""
+
+#. CollectionEditor..ActionList1..MoveDownCmd..Caption\r
+#: Property\r Editors/ColnEdit.dfm:214 \r
+msgid "Move Dow&n"
+msgstr ""
+
+#. CollectionEditor..ActionList1..MoveDownCmd..Hint\r
+#: Property\r Editors/ColnEdit.dfm:216 \r
+msgid "Move Selected Down"
+msgstr ""
+
+#. CollectionEditor..ActionList1..SelectAllCmd..Caption\r
+#. UpdateSQLEditForm..FieldListPopup..miSelectAll..Caption\r
+#. StandardActions..ActionList1..ListControlSelectAll1..Caption\r
+#: Property\r Editors/ColnEdit.dfm:223 \r Editors/UpdSqlEd.dfm:210
+#: Vcl/ActnRes.dfm:276
+msgid "&Select All"
+msgstr ""
+
+#. DBEditForm..GroupBox1..Caption\r
+#: Property\r Editors/Dbedit.dfm:18 \r
+msgid " Database "
+msgstr "Base de datos"
+
+#. DBEditForm..GroupBox1..Label1..Caption\r
+#: Property\r Editors/Dbedit.dfm:25 \r
+msgid "&Alias name:"
+msgstr ""
+
+#. DBEditForm..GroupBox1..Label2..Caption\r
+#: Property\r Editors/Dbedit.dfm:33 \r
+msgid "&Driver name:"
+msgstr "Nombre del dispositivo:"
+
+#. DBEditForm..GroupBox1..Label3..Caption\r
+#: Property\r Editors/Dbedit.dfm:41 \r
+msgid "&Parameter overrides:"
+msgstr ""
+
+#. DBEditForm..GroupBox1..Label4..Caption\r
+#. DefineField..FieldGroup..FieldNameLabel..Caption\r
+#: Property\r Editors/Dbedit.dfm:49 \r Editors/DSDefine.dfm:154
+msgid "&Name:"
+msgstr ""
+
+#. DBEditForm..GroupBox1..DefaultsButton..Caption\r
+#: Property\r Editors/Dbedit.dfm:90 \r
+msgid "D&efaults"
+msgstr ""
+
+#. DBEditForm..GroupBox3..LoginPrompt..Caption\r
+#: Property\r Editors/Dbedit.dfm:123 \r
+msgid "&Login prompt"
+msgstr ""
+
+#. DBEditForm..GroupBox3..KeepConnection..Caption\r
+#: Property\r Editors/Dbedit.dfm:131 \r
+msgid "&Keep inactive connection"
+msgstr "Mantener la conexión inactiva"
+
+#. InputReqDialog..Caption\r
+#: Property\r Editors/dbinpreq.dfm:6 \r
+msgid "Input Requested"
+msgstr "Entrada esperada"
+
+#. InputReqDialog..NoPromptAgain..Caption\r
+#: Property\r Editors/dbinpreq.dfm:48 \r
+msgid "Don't Prompt Again"
+msgstr ""
+
+#. DataBindForm..Caption\r
+#: Property\r Editors/DbOleEdt.dfm:6 \r
+msgid "ActiveX Control Data Bindings Editor"
+msgstr ""
+
+#. DataBindForm..Panel1..Label1..Caption\r
+#: Property\r Editors/DbOleEdt.dfm:29 \r
+msgid "&Property Name:"
+msgstr ""
+
+#. DataBindForm..Panel1..Label2..Caption\r
+#: Property\r Editors/DbOleEdt.dfm:37 \r
+msgid "&Field Name:"
+msgstr ""
+
+#. DataBindForm..Panel1..Label3..Caption\r
+#: Property\r Editors/DbOleEdt.dfm:45 \r
+msgid "Bo&und Properties to Fields:"
+msgstr ""
+
+#. DataBindForm..Panel1..BindBtn..Caption\r
+#: Property\r Editors/DbOleEdt.dfm:73 \r
+msgid "<- &Bind ->"
+msgstr ""
+
+#. DataBindForm..Panel1..ClearBtn..Caption\r
+#: Property\r Editors/DbOleEdt.dfm:99 \r
+msgid "C&lear"
+msgstr ""
+
+#. AddFields..GroupBox1..Caption\r
+#: Property\r Editors/DSAdd.dfm:46 \r
+msgid "Available fields"
+msgstr ""
+
+#. AssociateAttributes..Caption\r
+#: Property\r Editors/DSAttrA.dfm:5 \r
+msgid "Associate attributes"
+msgstr ""
+
+#. AssociateAttributes..GroupBox1..Caption\r
+#: Property\r Editors/DSAttrA.dfm:51 \r
+msgid "Attribute set name"
+msgstr ""
+
+#. SaveAttributesAs..Caption\r
+#: Property\r Editors/DSAttrS.dfm:5 \r
+msgid "Save %s attributes as"
+msgstr ""
+
+#. SaveAttributesAs..Label1..Caption\r
+#: Property\r Editors/DSAttrS.dfm:25 \r
+msgid "&Attribute set name:"
+msgstr ""
+
+#. SaveAttributesAs..Label2..Caption\r
+#: Property\r Editors/DSAttrS.dfm:33 \r
+msgid "&Based on:"
+msgstr ""
+
+#. DefineField..Caption\r
+#: Property\r Editors/DSDefine.dfm:5 \r
+msgid "New Field"
+msgstr ""
+
+#. DefineField..LookupGroup..Caption\r
+#: Property\r Editors/DSDefine.dfm:20 \r
+msgid "Lookup definition"
+msgstr ""
+
+#. DefineField..LookupGroup..DatasetLabel..Caption\r
+#: Property\r Editors/DSDefine.dfm:27 \r
+msgid "D&ataset:"
+msgstr ""
+
+#. DefineField..LookupGroup..KeyFieldsLabel..Caption\r
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..Label3..Caption\r
+#: Property\r Editors/DSDefine.dfm:36 \r Editors/UpdSqlEd.dfm:75
+msgid "&Key Fields:"
+msgstr ""
+
+#. DefineField..LookupGroup..LookupKeysLabel..Caption\r
+#: Property\r Editors/DSDefine.dfm:45 \r
+msgid "Look&up Keys:"
+msgstr ""
+
+#. DefineField..LookupGroup..ResultFieldLabel..Caption\r
+#: Property\r Editors/DSDefine.dfm:54 \r
+msgid "&Result Field:"
+msgstr ""
+
+#. DefineField..FieldGroup..Caption\r
+#: Property\r Editors/DSDefine.dfm:139 \r
+msgid "Field properties"
+msgstr ""
+
+#. DefineField..FieldGroup..ComponentNameLabel..Caption\r
+#: Property\r Editors/DSDefine.dfm:146 \r
+msgid "C&omponent:"
+msgstr ""
+
+#. DefineField..FieldGroup..FieldTypeLabel..Caption\r
+#: Property\r Editors/DSDefine.dfm:162 \r
+msgid "&Type:"
+msgstr ""
+
+#. DefineField..FieldGroup..SizeEditLabel..Caption\r
+#: Property\r Editors/DSDefine.dfm:170 \r
+msgid "&Size:"
+msgstr ""
+
+#. DefineField..FieldKind..Caption\r
+#: Property\r Editors/DSDefine.dfm:216 \r
+msgid "Field type"
+msgstr ""
+
+#. DefineField..FieldKind....Items.Strings\r
+#: Property\r Editors/DSDefine.dfm:223 \r
+msgid ""
+"&Data\n"
+"&Calculated\n"
+"&Lookup\n"
+msgstr ""
+
+#. FieldsEditor..FieldListBox..Hint\r
+#: Property\r Editors/DSDesign.dfm:81 \r
+msgid "Fields"
+msgstr ""
+
+#. FieldsEditor..AggListBox..Hint\r
+#: Property\r Editors/DSDesign.dfm:100 \r
+msgid "Aggregates"
+msgstr ""
+
+#. FieldsEditor..LocalMenu..AddItem..Caption\r
+#: Property\r Editors/DSDesign.dfm:121 \r
+msgid "&Add fields..."
+msgstr ""
+
+#. FieldsEditor..LocalMenu..NewItem..Caption\r
+#: Property\r Editors/DSDesign.dfm:127 \r
+msgid "&New field..."
+msgstr ""
+
+#. FieldsEditor..LocalMenu..Addallfields1..Caption\r
+#: Property\r Editors/DSDesign.dfm:133 \r
+msgid "Add all &fields"
+msgstr ""
+
+#. FieldsEditor..LocalMenu..SelectAllItem..Caption\r
+#: Property\r Editors/DSDesign.dfm:165 \r
+msgid "Se&lect all"
+msgstr ""
+
+#. LinkFields..Caption\r
+#: Property\r Editors/FldLinks.DFM:6 \r
+msgid "Field Link Designer"
+msgstr ""
+
+#. LinkFields..Label30..Caption\r
+#: Property\r Editors/FldLinks.DFM:35 \r
+msgid "D&etail Fields"
+msgstr ""
+
+#. LinkFields..Label31..Caption\r
+#: Property\r Editors/FldLinks.DFM:44 \r
+msgid "&Master Fields"
+msgstr ""
+
+#. LinkFields..IndexLabel..Caption\r
+#: Property\r Editors/FldLinks.DFM:53 \r
+msgid "A&vailable Indexes"
+msgstr ""
+
+#. LinkFields..Label2..Caption\r
+#: Property\r Editors/FldLinks.DFM:61 \r
+msgid "&Joined Fields"
+msgstr ""
+
+#. IndexFiles..Caption\r
+#. IndexFiles..GroupBox1..Caption\r
+#: Property\r Editors/Ixedit.dfm:5 \r Editors/Ixedit.dfm:17
+msgid "Index Files"
+msgstr "Archivos del índice"
+
+#. IndexFiles..OpenDialog....OnClick\r
+#: Property\r Editors/Ixedit.dfm:92 \r
+msgid ""
+"dBASE Multiple Index (*.MDX)|*.mdx|dBase Index (*.NDX)|*.ndx|FoxPro Index (*."
+"CDX)|*.cdx\n"
+msgstr ""
+
+#. PictureEditorDlg..OpenDialog....OnClick\r
+#. PictureEditorDlg..SaveDialog....Top\r
+#: Property\r Editors/PicEdit.dfm:104 \r Editors/PicEdit.dfm:112
+msgid ""
+"All (*.bmp;*.ico;*.emf;*.wmf)|*.bmp;*.ico;*.emf;*.wmf|Bitmaps (*.bmp)|*.bmp|"
+"Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*."
+"wmf\n"
+msgstr ""
+
+#. SQLEditForm..Caption\r
+#: Property\r Editors/SqlEdit.dfm:5 \r
+msgid "CommandText Editor"
+msgstr "Editor del CommandText"
+
+#. SQLEditForm..TopPanel..TableListLabel..Caption\r
+#: Property\r Editors/SqlEdit.dfm:52 \r
+msgid "&Tables:"
+msgstr ""
+
+#. SQLEditForm..TopPanel..SQLLabel..Caption\r
+#: Property\r Editors/SqlEdit.dfm:60 \r
+msgid "&SQL:"
+msgstr ""
+
+#. SQLEditForm..MetaInfoPanel..TableListPanel..AddTableButton..Caption\r
+#: Property\r Editors/SqlEdit.dfm:165 \r
+msgid "Add T&able to SQL"
+msgstr ""
+
+#. SQLEditForm..MetaInfoPanel..FieldsPanel..FieldListLabel..Caption\r
+#: Property\r Editors/SqlEdit.dfm:183 \r
+msgid "&Fields:"
+msgstr ""
+
+#. SQLEditForm..MetaInfoPanel..FieldsPanel..AddFieldButton..Caption\r
+#: Property\r Editors/SqlEdit.dfm:203 \r
+msgid "Add F&ield to SQL"
+msgstr ""
+
+#. StrEditDlg..Caption\r
+#: Property\r Editors/StrEdit.dfm:5 \r
+msgid "String List Editor"
+msgstr ""
+
+#. StrEditDlg..CodeWndBtn..Caption\r
+#. StrEditDlg..StringEditorMenu..CodeEditorItem..Caption\r
+#: Property\r Editors/StrEdit.dfm:20 \r Editors/StrEdit.dfm:84
+msgid "&Code Editor..."
+msgstr "Editor de &código..."
+
+#. StrEditDlg..OpenDialog..DefaultExt\r
+#: Property\r Editors/StrEdit.dfm:56 \r
+msgid "TXT"
+msgstr "TXT"
+
+#. StrEditDlg..OpenDialog....DefaultExt\r
+#. StrEditDlg..SaveDialog....HelpContext\r
+#: Property\r Editors/StrEdit.dfm:60 \r Editors/StrEdit.dfm:69
+msgid ""
+"Text files (*.TXT)|*.TXT|Config files (*.SYS;*.INI)|*.SYS;*.INI|Batch files "
+"(*.BAT)|*.BAT|All files (*.*)|*.*\n"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:60 \r
+msgid " SQL Generation "
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..Label1..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:67 \r
+msgid "Table &Name:"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..Label4..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:83 \r
+msgid "Update &Fields:"
+msgstr "Actualiza campos:"
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..GenerateButton..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:123 \r
+msgid "&Generate SQL"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..PrimaryKeyButton..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:132 \r
+msgid "Select &Primary Keys"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..DefaultButton..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:141 \r
+msgid "&Dataset Defaults"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..QuoteFields..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:151 \r
+msgid "&Quote Field Names"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..FieldsPage..GroupBox1..GetTableFieldsButton..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:160 \r
+msgid "Get &Table Fields"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..SQLPage..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:167 \r
+msgid "SQL"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..SQLPage..Label2..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:173 \r
+msgid "S&QL Text:"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..SQLPage..StatementType..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:190 \r
+msgid "Statement Type"
+msgstr ""
+
+#. UpdateSQLEditForm..PageControl..SQLPage..StatementType....Items.Strings\r
+#: Property\r Editors/UpdSqlEd.dfm:197 \r
+msgid ""
+"&Modify\n"
+"&Insert\n"
+"&Delete\n"
+msgstr ""
+
+#. UpdateSQLEditForm..FieldListPopup..miClearAll..Caption\r
+#: Property\r Editors/UpdSqlEd.dfm:214 \r
+msgid "&Clear All"
+msgstr ""
+
+#. ValueEditDlg..Caption\r
+#: Property\r Editors/ValueEdit.dfm:4 \r
+msgid "Value List editor"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowArrange1..Category\r
+#. StandardActions..ActionList1..WindowCascade1..Category\r
+#. StandardActions..ActionList1..WindowClose1..Category\r
+#. StandardActions..ActionList1..WindowMinimizeAll1..Category\r
+#. StandardActions..ActionList1..WindowTileHorizontal1..Category\r
+#. StandardActions..ActionList1..WindowTileVertical1..Category\r
+#: Vcl/ActnRes.dfm:33 \r Vcl/ActnRes.dfm:37 Vcl/ActnRes.dfm:43
+#: Vcl/ActnRes.dfm:48 Vcl/ActnRes.dfm:53 Vcl/ActnRes.dfm:59
+msgid "Window"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowArrange1..Caption\r
+#: Vcl/ActnRes.dfm:34 \r
+msgid "&Arrange"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowCascade1..Caption\r
+#: Vcl/ActnRes.dfm:38 \r
+msgid "&Cascade"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowCascade1..Hint\r
+#: Vcl/ActnRes.dfm:39 \r
+msgid "Cascade"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowClose1..Caption\r
+#: Vcl/ActnRes.dfm:44 \r
+msgid "C&lose"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowClose1..Hint\r
+#. CustomizeFrm..CloseBtn..Caption\r
+#. CustomizeFrm..ActionList1..CloseActn..Caption\r
+#: Vcl/ActnRes.dfm:45 \r Vcl/CustomizeDlg.dfm:35 Vcl/CustomizeDlg.dfm:393
+msgid "Close"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowMinimizeAll1..Caption\r
+#: Vcl/ActnRes.dfm:49 \r
+msgid "&Minimize All"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowMinimizeAll1..Hint\r
+#: Vcl/ActnRes.dfm:50 \r
+msgid "Minimize All"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowTileHorizontal1..Caption\r
+#: Vcl/ActnRes.dfm:54 \r
+msgid "Tile &Horizontally"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowTileHorizontal1..Hint\r
+#: Vcl/ActnRes.dfm:55 \r
+msgid "Tile Horizontal"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowTileVertical1..Caption\r
+#: Vcl/ActnRes.dfm:60 \r
+msgid "&Tile Vertically"
+msgstr ""
+
+#. StandardActions..ActionList1..WindowTileVertical1..Hint\r
+#: Vcl/ActnRes.dfm:61 \r
+msgid "Tile Vertical"
+msgstr ""
+
+#. StandardActions..ActionList1..EditDelete1..Hint\r
+#: Vcl/ActnRes.dfm:67 \r
+msgid "Delete|Erases the selection"
+msgstr ""
+
+#. StandardActions..ActionList1..HelpContents1..Caption\r
+#: Vcl/ActnRes.dfm:86 \r
+msgid "&Contents"
+msgstr "&Contenido"
+
+#. StandardActions..ActionList1..HelpContents1..Hint\r
+#: Vcl/ActnRes.dfm:87 \r
+msgid "Help Contents"
+msgstr "Contenidos de la ayuda"
+
+#. StandardActions..ActionList1..HelpOnHelp1..Caption\r
+#: Vcl/ActnRes.dfm:92 \r
+msgid "&Help on Help"
+msgstr ""
+
+#. StandardActions..ActionList1..HelpOnHelp1..Hint\r
+#: Vcl/ActnRes.dfm:93 \r
+msgid "Help on help"
+msgstr ""
+
+#. StandardActions..ActionList1..HelpTopicSearch1..Caption\r
+#: Vcl/ActnRes.dfm:97 \r
+msgid "&Topic Search"
+msgstr ""
+
+#. StandardActions..ActionList1..HelpTopicSearch1..Hint\r
+#: Vcl/ActnRes.dfm:98 \r
+msgid "Topic Search"
+msgstr ""
+
+#. StandardActions..ActionList1..FileExit1..Category\r
+#. StandardActions..ActionList1..FileOpen1..Category\r
+#. StandardActions..ActionList1..FilePrintSetup1..Category\r
+#. StandardActions..ActionList1..FileSaveAs1..Category\r
+#. StandardActions..ActionList1..FileRun1..Category\r
+#: Vcl/ActnRes.dfm:102 \r Vcl/ActnRes.dfm:108 Vcl/ActnRes.dfm:115
+#: Vcl/ActnRes.dfm:120 Vcl/ActnRes.dfm:235
+msgid "File"
+msgstr ""
+
+#. StandardActions..ActionList1..FileExit1..Hint\r
+#: Vcl/ActnRes.dfm:104 \r
+msgid "Exit|Quits the application"
+msgstr "Marchar|Salir de la aplicación"
+
+#. StandardActions..ActionList1..FileOpen1..Caption\r
+#: Vcl/ActnRes.dfm:109 \r
+msgid "&Open..."
+msgstr ""
+
+#. StandardActions..ActionList1..FileOpen1..Hint\r
+#: Vcl/ActnRes.dfm:110 \r
+msgid "Open|Opens an existing file"
+msgstr ""
+
+#. StandardActions..ActionList1..FilePrintSetup1..Caption\r
+#: Vcl/ActnRes.dfm:116 \r
+msgid "Print Set&up..."
+msgstr ""
+
+#. StandardActions..ActionList1..FilePrintSetup1..Hint\r
+#: Vcl/ActnRes.dfm:117 \r
+msgid "Print Setup"
+msgstr ""
+
+#. StandardActions..ActionList1..FileSaveAs1..Caption\r
+#: Vcl/ActnRes.dfm:121 \r
+msgid "Save &As..."
+msgstr ""
+
+#. StandardActions..ActionList1..FileSaveAs1..Hint\r
+#: Vcl/ActnRes.dfm:122 \r
+msgid "Save As|Saves the active file with a new name"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditBold1..Category\r
+#. StandardActions..ActionList1..RichEditItalic1..Category\r
+#. StandardActions..ActionList1..RichEditUnderline1..Category\r
+#. StandardActions..ActionList1..RichEditAlignCenter1..Category\r
+#. StandardActions..ActionList1..RichEditAlignLeft1..Category\r
+#. StandardActions..ActionList1..RichEditAlignRight1..Category\r
+#. StandardActions..ActionList1..RichEditBullets1..Category\r
+#. StandardActions..ActionList1..RichEditStrikeOut1..Category\r
+#: Vcl/ActnRes.dfm:126 \r Vcl/ActnRes.dfm:134 Vcl/ActnRes.dfm:142
+#: Vcl/ActnRes.dfm:170 Vcl/ActnRes.dfm:177 Vcl/ActnRes.dfm:184
+#: Vcl/ActnRes.dfm:191 Vcl/ActnRes.dfm:198
+msgid "Format"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditBold1..Caption\r
+#: Vcl/ActnRes.dfm:128 \r
+msgid "&Bold"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditItalic1..Caption\r
+#: Vcl/ActnRes.dfm:136 \r
+msgid "&Italic"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditUnderline1..Caption\r
+#: Vcl/ActnRes.dfm:144 \r
+msgid "&Underline"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditUnderline1..Hint\r
+#: Vcl/ActnRes.dfm:145 \r
+msgid "Underline"
+msgstr ""
+
+#. StandardActions..ActionList1..SearchFind1..Category\r
+#. StandardActions..ActionList1..SearchFindNext1..Category\r
+#. StandardActions..ActionList1..SearchReplace1..Category\r
+#. StandardActions..ActionList1..SearchFindFirst1..Category\r
+#: Vcl/ActnRes.dfm:150 \r Vcl/ActnRes.dfm:157 Vcl/ActnRes.dfm:164
+#: Vcl/ActnRes.dfm:255
+msgid "Search"
+msgstr ""
+
+#. StandardActions..ActionList1..SearchFind1..Caption\r
+#: Vcl/ActnRes.dfm:151 \r
+msgid "&Find..."
+msgstr ""
+
+#. StandardActions..ActionList1..SearchFind1..Hint\r
+#: Vcl/ActnRes.dfm:152 \r
+msgid "Find|Finds the specified text"
+msgstr "Encontrar|Encuentra el texto especificado"
+
+#. StandardActions..ActionList1..SearchFindNext1..Caption\r
+#: Vcl/ActnRes.dfm:158 \r
+msgid "Find &Next"
+msgstr ""
+
+#. StandardActions..ActionList1..SearchFindNext1..Hint\r
+#: Vcl/ActnRes.dfm:159 \r
+msgid "Find Next|Repeats the last find"
+msgstr ""
+
+#. StandardActions..ActionList1..SearchReplace1..Hint\r
+#: Vcl/ActnRes.dfm:166 \r
+msgid "Replace|Replaces specific text with different text"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditAlignCenter1..Caption\r
+#: Vcl/ActnRes.dfm:172 \r
+msgid "&Center"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditAlignCenter1..Hint\r
+#: Vcl/ActnRes.dfm:173 \r
+msgid "Center|Centers text between margins"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditAlignLeft1..Caption\r
+#: Vcl/ActnRes.dfm:179 \r
+msgid "Align &Left"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditAlignLeft1..Hint\r
+#: Vcl/ActnRes.dfm:180 \r
+msgid "Align Left|Aligns text at the left indent"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditAlignRight1..Caption\r
+#: Vcl/ActnRes.dfm:186 \r
+msgid "Align &Right"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditAlignRight1..Hint\r
+#: Vcl/ActnRes.dfm:187 \r
+msgid "Align Right|Aligns text at the right indent"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditBullets1..Caption\r
+#: Vcl/ActnRes.dfm:193 \r
+msgid "&Bullets"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditBullets1..Hint\r
+#: Vcl/ActnRes.dfm:194 \r
+msgid "Bullets|Inserts a bullet on the current line"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditStrikeOut1..Caption\r
+#: Vcl/ActnRes.dfm:200 \r
+msgid "&Strikeout"
+msgstr ""
+
+#. StandardActions..ActionList1..RichEditStrikeOut1..Hint\r
+#: Vcl/ActnRes.dfm:201 \r
+msgid "Strikeout"
+msgstr ""
+
+#. StandardActions..ActionList1..ColorSelect1..Caption\r
+#: Vcl/ActnRes.dfm:206 \r
+msgid "Select &Color..."
+msgstr ""
+
+#. StandardActions..ActionList1..ColorSelect1..Hint\r
+#: Vcl/ActnRes.dfm:208 \r
+msgid "Color Select"
+msgstr ""
+
+#. StandardActions..ActionList1..OpenPicture1..Caption\r
+#: Vcl/ActnRes.dfm:224 \r
+msgid "&Open Picture..."
+msgstr ""
+
+#. StandardActions..ActionList1..OpenPicture1..Hint\r
+#: Vcl/ActnRes.dfm:225 \r
+msgid "Open Picture"
+msgstr ""
+
+#. StandardActions..ActionList1..SavePicture1..Caption\r
+#: Vcl/ActnRes.dfm:230 \r
+msgid "&Save Picture..."
+msgstr ""
+
+#. StandardActions..ActionList1..SavePicture1..Hint\r
+#: Vcl/ActnRes.dfm:231 \r
+msgid "Save Picture"
+msgstr ""
+
+#. StandardActions..ActionList1..FileRun1..Caption\r
+#: Vcl/ActnRes.dfm:238 \r
+msgid "&Run..."
+msgstr ""
+
+#. StandardActions..ActionList1..FileRun1..Hint\r
+#: Vcl/ActnRes.dfm:239 \r
+msgid "Run|Runs an application"
+msgstr ""
+
+#. StandardActions..ActionList1..FileRun1..Operation\r
+#: Vcl/ActnRes.dfm:240 \r
+msgid "open"
+msgstr ""
+
+#. StandardActions..ActionList1..PreviousTab1..Hint\r
+#: Vcl/ActnRes.dfm:246 \r
+msgid "Previous|Go back to the previous tab"
+msgstr ""
+
+#. StandardActions..ActionList1..NextTab1..LastTabCaption\r
+#: Vcl/ActnRes.dfm:250 \r
+msgid "&Finish"
+msgstr ""
+
+#. StandardActions..ActionList1..NextTab1..Hint\r
+#: Vcl/ActnRes.dfm:252 \r
+msgid "Next|Go to the next tab"
+msgstr ""
+
+#. StandardActions..ActionList1..SearchFindFirst1..Caption\r
+#: Vcl/ActnRes.dfm:256 \r
+msgid "F&ind First"
+msgstr ""
+
+#. StandardActions..ActionList1..SearchFindFirst1..Hint\r
+#: Vcl/ActnRes.dfm:257 \r
+msgid "Find First|Finds the first occurance of specified text"
+msgstr ""
+
+#. StandardActions..ActionList1..HelpContextAction1..Caption\r
+#: Vcl/ActnRes.dfm:261 \r
+#, fuzzy
+msgid "HelpContextAction1"
+msgstr "Contenidos de la ayuda"
+
+#. StandardActions..ActionList1..ListControlCopySelection1..Category\r
+#. StandardActions..ActionList1..ListControlDeleteSelection1..Category\r
+#. StandardActions..ActionList1..ListControlSelectAll1..Category\r
+#. StandardActions..ActionList1..ListControlClearSelection1..Category\r
+#. StandardActions..ActionList1..ListControlMoveSelection1..Category\r
+#: Vcl/ActnRes.dfm:265 \r Vcl/ActnRes.dfm:270 Vcl/ActnRes.dfm:275
+#: Vcl/ActnRes.dfm:280 Vcl/ActnRes.dfm:285
+msgid "List"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlCopySelection1..Caption\r
+#: Vcl/ActnRes.dfm:266 \r
+msgid "&Copy Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlCopySelection1..Hint\r
+#: Vcl/ActnRes.dfm:267 \r
+msgid "Copy Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlDeleteSelection1..Caption\r
+#: Vcl/ActnRes.dfm:271 \r
+msgid "&Delete Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlDeleteSelection1..Hint\r
+#: Vcl/ActnRes.dfm:272 \r
+msgid "Delete Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlClearSelection1..Caption\r
+#. StandardActions..ActionList1..ListControlClearSelection1..Hint\r
+#: Vcl/ActnRes.dfm:281 \r Vcl/ActnRes.dfm:282
+msgid "Clear Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlMoveSelection1..Caption\r
+#: Vcl/ActnRes.dfm:286 \r
+msgid "&Move Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..ListControlMoveSelection1..Hint\r
+#: Vcl/ActnRes.dfm:287 \r
+msgid "Move Selection"
+msgstr ""
+
+#. StandardActions..ActionList1..BrowseURL1..Category\r
+#. StandardActions..ActionList1..DownLoadURL1..Category\r
+#. StandardActions..ActionList1..SendMail1..Category\r
+#: Vcl/ActnRes.dfm:290 \r Vcl/ActnRes.dfm:295 Vcl/ActnRes.dfm:300
+msgid "Internet"
+msgstr ""
+
+#. StandardActions..ActionList1..BrowseURL1..Caption\r
+#: Vcl/ActnRes.dfm:291 \r
+msgid "&Browse URL"
+msgstr ""
+
+#. StandardActions..ActionList1..BrowseURL1..Hint\r
+#: Vcl/ActnRes.dfm:292 \r
+msgid "Browse URL"
+msgstr ""
+
+#. StandardActions..ActionList1..DownLoadURL1..Caption\r
+#: Vcl/ActnRes.dfm:296 \r
+msgid "&Download URL"
+msgstr ""
+
+#. StandardActions..ActionList1..DownLoadURL1..Hint\r
+#: Vcl/ActnRes.dfm:297 \r
+msgid "Download from URL"
+msgstr ""
+
+#. StandardActions..ActionList1..SendMail1..Caption\r
+#: Vcl/ActnRes.dfm:301 \r
+msgid "&Send Mail..."
+msgstr ""
+
+#. StandardActions..ActionList1..SendMail1..Hint\r
+#: Vcl/ActnRes.dfm:302 \r
+msgid "Send email"
+msgstr ""
+
+#. StandardActions..ActionList1..PrintDlg1..Caption\r
+#: Vcl/ActnRes.dfm:306 \r
+msgid "&Print..."
+msgstr ""
+
+#. CustomizeFrm..Caption\r
+#: Vcl/CustomizeDlg.dfm:6 \r
+msgid "Customize"
+msgstr ""
+
+#. CustomizeFrm..Font.Name\r
+#: Vcl/CustomizeDlg.dfm:15 \r
+#, fuzzy
+msgid "Tahoma"
+msgstr "Brazas"
+
+#. CustomizeFrm..Tabs..ToolbarsTab..Caption\r
+#. CustomizeFrm..ActionList1..ResetActn..Category\r
+#. CustomizeFrm..ActionList1..ApplyToAllActn..Category\r
+#: Vcl/CustomizeDlg.dfm:52 \r Vcl/CustomizeDlg.dfm:386 Vcl/CustomizeDlg.dfm:426
+msgid "Toolbars"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ToolbarsTab..ToolbarsLbl..Caption\r
+#: Vcl/CustomizeDlg.dfm:62 \r
+msgid "Toolb&ars:"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ToolbarsTab..Label2..Caption\r
+#: Vcl/CustomizeDlg.dfm:71 \r
+msgid "(Checkmark toggles visibility)"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ToolbarsTab..CaptionOptionsGrp..Caption\r
+#: Vcl/CustomizeDlg.dfm:100 \r
+msgid "&Toolbar Options"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ToolbarsTab..CaptionOptionsGrp..Label4..Caption\r
+#: Vcl/CustomizeDlg.dfm:108 \r
+msgid "&Caption Options"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ToolbarsTab..CaptionOptionsGrp..ApplyToAllChk..Caption\r
+#: Vcl/CustomizeDlg.dfm:116 \r
+msgid "Apply caption options &to all toolbars"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ToolbarsTab..CaptionOptionsGrp..CaptionOptionsCombo....Items.Strings\r
+#: Vcl/CustomizeDlg.dfm:132 \r
+msgid ""
+"None\n"
+"Selective\n"
+"All\n"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ActionsTab..Caption\r
+#: Vcl/CustomizeDlg.dfm:136 \r
+msgid "Actions"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ActionsTab..InfoLbl....AutoSize\r
+#: Vcl/CustomizeDlg.dfm:152 \r
+msgid ""
+"To add actions to your application simply drag and drop from either "
+"Categories or Actions onto an existing ActionBar.\n"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ActionsTab..ListPanel..ActionsCatLbl..Caption\r
+#: Vcl/CustomizeDlg.dfm:172 \r
+msgid "Cate&gories:"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ActionsTab..ListPanel..ActionsActionsLbl..Caption\r
+#: Vcl/CustomizeDlg.dfm:181 \r
+msgid "A&ctions:"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ActionsTab..DescGroupBox..Caption\r
+#: Vcl/CustomizeDlg.dfm:222 \r
+msgid "Description"
+msgstr ""
+
+#. CustomizeFrm..Tabs..ActionsTab..DescGroupBox..HintLbl..Caption\r
+#: Vcl/CustomizeDlg.dfm:235 \r
+msgid "HintLbl"
+msgstr ""
+
+#. CustomizeFrm..Tabs..OptionsTab..PersonalizeLbl..Caption\r
+#: Vcl/CustomizeDlg.dfm:271 \r
+msgid "Personalized Menus and Toolbars"
+msgstr ""
+
+#. CustomizeFrm..Tabs..OptionsTab..Label1..Caption\r
+#: Vcl/CustomizeDlg.dfm:305 \r
+msgid "&Menu animations:"
+msgstr ""
+
+#. CustomizeFrm..Tabs..OptionsTab..MenuAnimationStyles....Items.Strings\r
+#: Vcl/CustomizeDlg.dfm:365 \r
+msgid ""
+"(None)\n"
+"Default\n"
+"UnFold\n"
+"Slide\n"
+"Fade\n"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..ResetActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:387 \r
+msgid "&Reset..."
+msgstr ""
+
+#. CustomizeFrm..ActionList1..ResetUsageDataActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:397 \r
+msgid "Reset Usage Data"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..RecentlyUsedActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:402 \r
+msgid "Me&nu show recently used items first"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..FullMenusActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:409 \r
+msgid "Show f&ull menus after a short delay"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..ShowHintsActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:415 \r
+msgid "Show &tips on toolbars"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..ShowShortCutsInTipsActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:422 \r
+msgid "Show shortcut keys in tips"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..ApplyToAllActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:428 \r
+msgid "Apply &to all toolbars"
+msgstr ""
+
+#. CustomizeFrm..ActionList1..LargeIconsActn..Caption\r
+#: Vcl/CustomizeDlg.dfm:434 \r
+msgid "&Large icons"
+msgstr ""
+
+#. LoginDialog..Panel..Panel1..Password..PasswordChar\r
+#. PasswordDialog..GroupBox1..Edit..PasswordChar\r
+#: Vcl/DBLOGDLG.dfm:102 \r Vcl/DbPWDlg.dfm:47
+msgid "*"
+msgstr ""
+
+#. HTTPServer......Name\r
+#: Vcl/HTTPIntr.dfm:6 \r
+msgid "Interpreter"
+msgstr ""
+
+#. frmGeneratorEditor..Caption\r
+#: Vcl/IBGeneratorEditor.dfm:5 \r
+msgid "frmGeneratorEditor"
+msgstr ""
+
+#. frmGeneratorEditor..Label1..Caption\r
+#: Vcl/IBGeneratorEditor.dfm:25 \r
+msgid "&Generator"
+msgstr ""
+
+#. frmGeneratorEditor..Label2..Caption\r
+#: Vcl/IBGeneratorEditor.dfm:35 \r
+msgid "&Field"
+msgstr ""
+
+#. frmGeneratorEditor..Label3..Caption\r
+#: Vcl/IBGeneratorEditor.dfm:44 \r
+msgid "Increment By"
+msgstr ""
+
+#. frmGeneratorEditor..cbxGenerators..Text\r
+#: Vcl/IBGeneratorEditor.dfm:74 \r
+msgid "cbxGenerators"
+msgstr ""
+
+#. frmGeneratorEditor..cbxFields..Text\r
+#: Vcl/IBGeneratorEditor.dfm:84 \r
+msgid "cbxFields"
+msgstr ""
+
+#. frmGeneratorEditor..grpApplyEvent..Caption\r
+#: Vcl/IBGeneratorEditor.dfm:91 \r
+msgid "&Apply Event"
+msgstr ""
+
+#. frmGeneratorEditor..grpApplyEvent....Items.Strings\r
+#: Vcl/IBGeneratorEditor.dfm:97 \r
+msgid ""
+"On New Record\n"
+"On Post\n"
+"On Server\n"
+msgstr ""
+
+#. frmIBRestoreEditor..Caption\r
+#: Vcl/IBRestoreEditor.dfm:5 \r
+msgid "Restore Database Files"
+msgstr ""
+
+#. frmIBSecurityEditor..Caption\r
+#. frmIBServiceEditor..Caption\r
+#: Vcl/IBSecurityEditor.dfm:6 \r Vcl/IBServiceEditor.dfm:6
+msgid "Service Editor"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox2..Label7..Caption\r
+#. frmIBServiceEditor..GroupBox2..Label7..Caption\r
+#: Vcl/IBSecurityEditor.dfm:30 \r Vcl/IBServiceEditor.dfm:38
+msgid "&Server:"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox2..Label8..Caption\r
+#. frmIBServiceEditor..GroupBox2..Label8..Caption\r
+#: Vcl/IBSecurityEditor.dfm:39 \r Vcl/IBServiceEditor.dfm:47
+msgid "&Protocol:"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox2..LocalRbtn..Caption\r
+#. frmIBServiceEditor..GroupBox2..LocalRbtn..Caption\r
+#: Vcl/IBSecurityEditor.dfm:48 \r Vcl/IBServiceEditor.dfm:63
+msgid "&Local"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox2..RemoteRbtn..Caption\r
+#. frmIBServiceEditor..GroupBox2..RemoteRbtn..Caption\r
+#: Vcl/IBSecurityEditor.dfm:59 \r Vcl/IBServiceEditor.dfm:74
+msgid "&Remote"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox2..Protocol....Items.Strings\r
+#. frmIBServiceEditor..GroupBox2..Protocol....Items.Strings\r
+#: Vcl/IBSecurityEditor.dfm:84 \r Vcl/IBServiceEditor.dfm:107
+msgid ""
+"TCP\n"
+"NamedPipe\n"
+"SPX\n"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox1..Caption\r
+#. frmIBServiceEditor..GroupBox1..Caption\r
+#: Vcl/IBSecurityEditor.dfm:129 \r Vcl/IBServiceEditor.dfm:152
+msgid "Database Parameters"
+msgstr "Parámetros de la base de datos"
+
+#. frmIBSecurityEditor..GroupBox1..Label3..Caption\r
+#. frmIBServiceEditor..GroupBox1..Label3..Caption\r
+#: Vcl/IBSecurityEditor.dfm:144 \r Vcl/IBServiceEditor.dfm:167
+msgid "Pass&word:"
+msgstr "Contrase&ña: "
+
+#. frmIBSecurityEditor..GroupBox1..Label5..Caption\r
+#. frmIBServiceEditor..GroupBox1..Label5..Caption\r
+#: Vcl/IBSecurityEditor.dfm:152 \r Vcl/IBServiceEditor.dfm:175
+msgid "Se&ttings:"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox1..LoginPrompt..Caption\r
+#. frmIBServiceEditor..GroupBox1..LoginPrompt..Caption\r
+#: Vcl/IBSecurityEditor.dfm:185 \r Vcl/IBServiceEditor.dfm:208
+msgid "Lo&gin Prompt"
+msgstr ""
+
+#. frmIBSecurityEditor..GroupBox1..chkActive..Caption\r
+#. frmIBServiceEditor..GroupBox1..chkActive..Caption\r
+#: Vcl/IBSecurityEditor.dfm:193 \r Vcl/IBServiceEditor.dfm:216
+msgid "&Active"
+msgstr ""
+
+#. frmIBServiceEditor..GroupBox2..Label1..Caption\r
+#: Vcl/IBServiceEditor.dfm:30 \r
+msgid "&Database:"
+msgstr "Base de &datos:"
+
+#. frmIBServiceEditor..GroupBox2..Browse..Caption\r
+#: Vcl/IBServiceEditor.dfm:83 \r
+msgid "&Browse"
+msgstr ""
+
+#. SocketForm..Caption\r
+#: Vcl/ScktMain.dfm:6 \r
+msgid "Borland Socket Server"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..PortGroup..Label1..Caption\r
+#: Vcl/ScktMain.dfm:46 \r
+msgid "&Listen on Port:"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..PortGroup..PortDesc....AutoSize\r
+#: Vcl/ScktMain.dfm:60 \r
+msgid ""
+"Many values of Port are associated by convention with a particular service "
+"such as ftp or http. Port is the ID of the connection on which the server "
+"listens for client requests. \n"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..ThreadGroup..Caption\r
+#: Vcl/ScktMain.dfm:92 \r
+msgid "Thread Caching"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..ThreadGroup..Label4..Caption\r
+#: Vcl/ScktMain.dfm:100 \r
+msgid "&Thread Cache Size:"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..ThreadGroup..ThreadDesc....AutoSize\r
+#: Vcl/ScktMain.dfm:113 \r
+msgid ""
+"Thread Cache Size is the maximum number of threads that can be reused for "
+"new client connections.\n"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..InterceptGroup..Caption\r
+#: Vcl/ScktMain.dfm:145 \r
+msgid "Intercept GUID"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..InterceptGroup..Label5..Caption\r
+#: Vcl/ScktMain.dfm:152 \r
+msgid "&GUID:"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..InterceptGroup..GUIDDesc....AutoSize\r
+#: Vcl/ScktMain.dfm:164 \r
+msgid ""
+"Intercept GUID is the GUID for a data interceptor COM object.  See help for "
+"the TSocketConnection for details.\n"
+msgstr ""
+
+#. SocketForm..Pages..PropPage..TimeoutGroup..Label7..Caption\r
+#: Vcl/ScktMain.dfm:188 \r
+msgid "&Inactive Timeout:"
+msgstr "Fuera de tiempo inactivo:"
+
+#. SocketForm..Pages..PropPage..TimeoutGroup..TimeoutDesc....AutoSize\r
+#: Vcl/ScktMain.dfm:201 \r
+msgid ""
+"Inactive Timeout specifes the number of minutes a client can be inactive "
+"before being disconnected. (0 indicates infinite)\n"
+msgstr ""
+
+#. SocketForm..Pages..StatPage..Caption\r
+#: Vcl/ScktMain.dfm:239 \r
+msgid "Users"
+msgstr ""
+
+#. SocketForm..Pages..StatPage..ConnectionList......Caption\r
+#: Vcl/ScktMain.dfm:256 \r
+msgid "Host"
+msgstr ""
+
+#. SocketForm..Pages..StatPage..ConnectionList......Caption\r
+#: Vcl/ScktMain.dfm:260 \r
+msgid "Last Activity"
+msgstr ""
+
+#. SocketForm..PopupMenu..miProperties..Caption\r
+#: Vcl/ScktMain.dfm:326 \r
+msgid "&Properties"
+msgstr ""
+
+#. SocketForm..MainMenu1..miPorts..Caption\r
+#: Vcl/ScktMain.dfm:342 \r
+msgid "&Ports"
+msgstr ""
+
+#. SocketForm..MainMenu1..miPorts..miExit..Caption\r
+#: Vcl/ScktMain.dfm:354 \r
+msgid "&Exit"
+msgstr ""
+
+#. SocketForm..MainMenu1..Connections1..Caption\r
+#: Vcl/ScktMain.dfm:359 \r
+msgid "&Connections"
+msgstr "&Conexiones"
+
+#. SocketForm..ActionList1..DisconnectAction..Caption\r
+#: Vcl/ScktMain.dfm:386 \r
+msgid "&Disconnect"
+msgstr "&Desconectar"
+
+#. SocketForm..ActionList1..ShowHostAction..Caption\r
+#: Vcl/ScktMain.dfm:391 \r
+msgid "&Show Host Name"
+msgstr ""
+
+#. SocketForm..ActionList1..RegisteredAction..Caption\r
+#: Vcl/ScktMain.dfm:401 \r
+msgid "&Registered Objects Only"
+msgstr ""
+
+#. SocketForm..ActionList1..AllowXML..Caption\r
+#: Vcl/ScktMain.dfm:406 \r
+msgid "&Allow XML Packets"
+msgstr ""
diff --git a/win32/gui-2/locale/es/LC_MESSAGES/gpsbabel.po b/win32/gui-2/locale/es/LC_MESSAGES/gpsbabel.po
new file mode 100644 (file)
index 0000000..039aed2
--- /dev/null
@@ -0,0 +1,396 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: GPSBabel command line program\n"
+"POT-Creation-Date: 2006-10-29 16:00\n"
+"PO-Revision-Date: 2006-10-31 14:53+0100\n"
+"Last-Translator: Daniel Díaz <Daniel.Diaz.Quintero@gmail.com>\n"
+"Language-Team: Daniel Díaz <Daniel.Diaz.Quintero@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Country: SPAIN\n"
+
+msgid "(integer sec or 'auto') Barograph to GPS time diff"
+msgstr "Dif. de tiempos de barógrafo a GPS (núm de segs. o 'auto')"
+
+msgid "(USR input) Break segments into separate tracks"
+msgstr "(Entrada USR) Dividir segmentos en tracks separadas"
+
+msgid "(USR output) Merge into one segmented track"
+msgstr "(Salida USR) Combinar en track segmentada"
+
+msgid "Ad-hoc closed icon name"
+msgstr "Cerrar nombre de icono Ad-hoc"
+
+msgid "Ad-hoc open icon name"
+msgstr "Abrir nombre de icono Ad-hoc"
+
+msgid "Allow whitespace synth. shortnames"
+msgstr "Permitir espacios en los nombres cortos a generar"
+
+msgid "Altitudes are absolute and not clamped to ground"
+msgstr "Altitudes absolutas, no relativas al suelo"
+
+msgid "Append icon_descr to description"
+msgstr "Añadir descripción de icono a la descripción"
+
+msgid "Base URL for link tag in output"
+msgstr "URL base para marca de enlace en salida"
+
+msgid "Basename prepended to URL on output"
+msgstr "Prefijo de la URL del resultado"
+
+msgid "Category name (Cache)"
+msgstr "Nombre de categoría (Cache)"
+
+msgid "Category number to use for written waypoints"
+msgstr "Número de categoría a usar en los puntos de trazado."
+
+msgid "Color for lines or mapnotes"
+msgstr "Color para líneas o notas de mapa"
+
+msgid "Command unit to power itself down"
+msgstr "Enviar comando de apagado a la unidad"
+
+msgid "Complete date-free tracks with given date (YYYYMMDD)."
+msgstr "Listado completo de trazas de la fecha (AAAAMMDD)."
+
+msgid "Create waypoints from geocache log entries"
+msgstr "Crear puntos de trazado a partir de entradas de log de geocache"
+
+msgid "Database name"
+msgstr "Nombre de la base de datos"
+
+msgid "Database name (filename)"
+msgstr "Nombre de la base de datos (nombre de fichero)"
+
+msgid "Datum (default=NAD27)"
+msgstr "Datum (por defecto=NAD27)"
+
+msgid "Days after which points are considered old"
+msgstr "Días después de los cuales los puntos se consideran antiguos"
+
+msgid "Decimal seconds to pause between groups of strings"
+msgstr "Segundos de pausa (en decimal) entre grupos de cadenas."
+
+msgid "Default category on output (1..16)"
+msgstr "Categoría por defecto del resultado (1..16)"
+
+msgid "Default icon name"
+msgstr "Nombre del icono por defecto"
+
+msgid "Default speed for waypoints (knots/hr)"
+msgstr "Velocidad por defecto para los puntos de trazado (nudos/hora)"
+
+msgid "Degrees output as 'ddd', 'dmm'(default) or 'dms'"
+msgstr "Salida en grados como 'ggg', 'gmm' (defecto) o 'gms'"
+
+msgid "Delete all waypoints"
+msgstr "Borrar todos los puntos de trazado."
+
+msgid "Display labels on track and routepoints  (default = 1)"
+msgstr "Mostrar etiquetas en rutas y puntos de ruta (defecto=1)"
+
+msgid "Distance unit [m=metric, s=statute]"
+msgstr "Unidades de distancia [m=metrico,s=imperial]"
+
+msgid "Do not add geocache data to description"
+msgstr "No añadir datos de geocache a la descripción"
+
+msgid "Draw extrusion line from trackpoint to ground"
+msgstr "Dibujar línea de extrusión desde el punto de trazado a tierra."
+
+msgid "Drop route points that do not have an equivalent waypoint (hidden points)"
+msgstr "Descartar puntos de la ruta que no tengan punto de ruta equivalente (oculto)"
+
+msgid "Encrypt hints using ROT13"
+msgstr "Encriptar sugerencias mediante ROT13"
+
+msgid "Encrypt hints with ROT13"
+msgstr "Encriptar sugerencias mediante ROT13"
+
+msgid "Erase device data after download"
+msgstr "Borrar datos del dispositivo después de descargar."
+
+msgid "Export linestrings for tracks and routes"
+msgstr "Exportar cadenas de líneas para tracks y rutas"
+
+msgid "Export placemarks for tracks and routes"
+msgstr "Exportar marcas para tracks y rutas"
+
+msgid "Full path to XCSV style file"
+msgstr "Ruta completa de la hoja de estilo XCSV"
+
+msgid "Generate file with lat/lon for centering map"
+msgstr "Generar fichero con lat/lon para centrar mapa"
+
+msgid "Give points (waypoints/route points) a default radius (proximity)"
+msgstr "Dar a los puntos (puntos de ruta/puntos de la ruta) un radio por defecto (proximidad)"
+
+msgid "GPS datum (def. WGS 84)"
+msgstr "Datum GPS (def. WGS 84)"
+
+msgid "Height in pixels of map"
+msgstr "Alto del mapa, en pixels"
+
+msgid "Ignore event marker icons"
+msgstr "Ignorar iconos de marca de eventos"
+
+msgid "Include extended data for trackpoints (default = 1)"
+msgstr "Incluir datos extendidos para los puntos de ruta."
+
+msgid "Include groundspeak logs if present"
+msgstr "Incluir registros de groundspeak, si existen"
+
+msgid "Include only via stations in route"
+msgstr "Suprimir puntos de ruta calculados"
+
+msgid "Include short name in bookmarks"
+msgstr "Incluir nombre corto en Favoritos"
+
+msgid "Index of name field in .dbf"
+msgstr "Índice del campo nombre en .dbf"
+
+msgid "Index of route (if more the one in source)"
+msgstr "Índice de ruta (si hay más de una en el origen)"
+
+msgid "Index of route to write (if more the one in source)"
+msgstr "Índice de la ruta a escribir (si existe más de una en origen)"
+
+msgid "Index of route/track to write (if more the one in source)"
+msgstr "Índice de la ruta/track a escribir (si existe más de una)"
+
+msgid "Index of track (if more the one in source)"
+msgstr "Índice de traza (si hay más de una en el origen)"
+
+msgid "Index of track to write (if more the one in source)"
+msgstr "Índice de track a escribir (si hay más de una en el origen)"
+
+msgid "Index of URL field in .dbf"
+msgstr "Índice del campo URL en .dbf"
+
+msgid "Infrastructure closed icon name"
+msgstr "Nombre de icono para cerrar infraestructura."
+
+msgid "Infrastructure open icon name"
+msgstr "Nombre de icono para abrir infraestructura."
+
+msgid "Keep turns if simplify filter is used"
+msgstr "Mantener giros si se usa el filtro de simplificación"
+
+msgid "Length of generated shortnames"
+msgstr "Longitud de nombres cortos a generar"
+
+msgid "Length of generated shortnames (default 16)"
+msgstr "Longitud de nombres cortos a generar"
+
+msgid "Line color, specified in hex AABBGGRR"
+msgstr "Color de línea, especificado en hex AABBGGRR"
+
+msgid "Make synth. shortnames unique"
+msgstr "Crear nombres cortos únicos"
+
+msgid "MapSend version TRK file to generate (3,4)"
+msgstr "Versión de fichero TRK de MapSend a generar (3,4)"
+
+msgid "Margin for map.  Degrees or percentage"
+msgstr "Márgen para el mapa. Grados de porcentaje."
+
+msgid "Marker type for new points"
+msgstr "Tipo de marcador para puntos nuevos"
+
+msgid "Marker type for old points"
+msgstr "Tipo de marcador para puntos antiguos"
+
+msgid "Marker type for unfound points"
+msgstr "Tipo de marcador para puntos no encontrados"
+
+msgid "Max length of waypoint name to write"
+msgstr "Longitud máxima de nombre de los puntos de rutas a escribir"
+
+msgid "Max number of comments to write (maxcmts=200)"
+msgstr "Máximo número de comentarios a escribir (maxcmts=200)"
+
+msgid "Max shortname length when used with -s"
+msgstr "Longitud máxima de nombre corto cuando se use con -s"
+
+msgid "Max synthesized shortname length"
+msgstr "Longitud máxima de nombre corto a generar"
+
+msgid "Merge output with existing file"
+msgstr "Combinar salida con fichero existente"
+
+msgid "Name of the 'unassigned' category"
+msgstr "Nombre de la categoría 'Sin asignar'"
+
+msgid "New name for the route"
+msgstr "Nuevo nombre de la ruta"
+
+msgid "No separator lines between waypoints"
+msgstr "Sin líneas de separación entre puntos de trazado."
+
+msgid "No whitespace in generated shortnames"
+msgstr "Sin espacios en blanco en nombres cortos."
+
+msgid "Non-stealth encrypted icon name"
+msgstr "Nombre de icono encriptado (No oculto)"
+
+msgid "Non-stealth non-encrypted icon name"
+msgstr "Nombre de icono no encriptado (No oculto)"
+
+msgid "Numeric value of bitrate (baud=4800)"
+msgstr "Valor numérico de bitrate (baudios=4800)"
+
+msgid "Omit Placer name"
+msgstr "Omitir nombre del creador"
+
+msgid "Only read turns; skip all other points"
+msgstr "Sólo leer giros; ignorar todos los demás puntos"
+
+msgid "Path to HTML style sheet"
+msgstr "Ruta de la hoja de estilo HTML"
+
+msgid "Precision of coordinates"
+msgstr "Precisión de las coordenadas."
+
+msgid "Radius for circles"
+msgstr "Radio para los círculos"
+
+msgid "Radius of our big earth (default 6371000 meters)"
+msgstr "Radio de nuestra gran Tierra (por defecto 6371000 metros)"
+
+msgid "Read control points as waypoint/route/none"
+msgstr "Leer puntos de control como punto de ruta/ruta/ninguno"
+
+msgid "Read/Write date format (i.e. DDMMYYYY)"
+msgstr "Formato de fecha en Lectura/Escritura (p.e. DDMMAAAA)"
+
+msgid "Read/Write date format (i.e. yyyy/mm/dd)"
+msgstr "Formato de fecha en Lectura/Escritura (p.e. aaaa/mm/dd)"
+
+msgid "Read/write GPGGA sentences"
+msgstr "Comandos de Lectura/Escritura en GPGGA"
+
+msgid "Read/write GPGSA sentences"
+msgstr "Comandos de Lectura/Escritura en GPGSA"
+
+msgid "Read/write GPRMC sentences"
+msgstr "Comandos de Lectura/Escritura en GPRMC"
+
+msgid "Read/write GPVTG sentences"
+msgstr "Comandos de Lectura/Escritura en GPVTG"
+
+msgid "Read/Write time format (i.e. HH:mm:ss xx)"
+msgstr "Formato de hora en Lectura/Escritura (p.e. HH:mm:ss xx)"
+
+msgid "Retain at most this number of position points  (0 = unlimited)"
+msgstr "Almacenar como poco este número de puntos de posición (0=ilimitado)"
+
+msgid "Return current position as a waypoint"
+msgstr "Devolver la posición actual como un punto de ruta"
+
+msgid "Road type changes"
+msgstr "Cambios en tipo de carretera."
+
+msgid "Shortname is MAC address"
+msgstr "El nombre corto es la dirección MAC"
+
+msgid "Speed in bits per second of serial port (baud=4800)"
+msgstr "Velocidad en bits por segundos del puerto serie (4800 baudios)"
+
+msgid "Split input into separate files"
+msgstr "Dividir la entrada en archivos separados"
+
+msgid "Split into multiple routes at turns"
+msgstr "Dividir en múltiples rutas en los giros"
+
+msgid "Stealth encrypted icon name"
+msgstr "Nombre de icono encriptado (Oculto)"
+
+msgid "Stealth non-encrypted icon name"
+msgstr "Nombre de icono no encriptado (Oculto)"
+
+msgid "String to separate concatenated address fields (default=\", \")"
+msgstr "Separar la cadena en campos de dirección concatenados (defecto=\",\")"
+
+msgid "Suppress labels on generated pins"
+msgstr "Quitar etiquetas en pins generados"
+
+msgid "Suppress retired geocaches"
+msgstr "Eliminar geocaches retirados"
+
+msgid "Suppress separator lines between waypoints"
+msgstr "Quitar líneas de separación entre puntos de ruta"
+
+msgid "Suppress use of handshaking in name of speed"
+msgstr "Eliminar uso de handshaking en nombre de velocidad (???)"
+
+msgid "Suppress whitespace in generated shortnames"
+msgstr "Quitar espacios en nombres cortos generados"
+
+msgid "Symbol to use for point data"
+msgstr "Símbolo a usar para los datos de puntos"
+
+msgid "Synthesize track times"
+msgstr "Tratar tiempos de las trazas"
+
+msgid "Target GPX version for output"
+msgstr "Versión GPX destino para la salida"
+
+msgid "Temperature unit [c=Celsius, f=Fahrenheit]"
+msgstr "Unidades de temperatura [c=Celsius, f=Fahrenheit]"
+
+msgid "The icon description is already the marker"
+msgstr "La descripción del icono ya es el marcador"
+
+msgid "Type of .an1 file"
+msgstr "Fichero de tipo .an1"
+
+msgid "Units for altitude (f)eet or (m)etres"
+msgstr "Unidades de altitud (p)íes o (m)etros"
+
+msgid "Units used when writing comments ('s'tatute or 'm'etric)"
+msgstr "Unidades utilizadas en los comentarios ('i'mperial o 'm'étrico')"
+
+msgid "UPPERCASE synth. shortnames"
+msgstr "Nombres cortos a generar en MAYÚSCULAS"
+
+msgid "Use depth values on output (default is ignore)"
+msgstr "Usar valores de profundidad en resultado (por defecto: ignorar)"
+
+msgid "Use proximity values on output (default is ignore)"
+msgstr "Usar valores de proximidad en resultado (por defecto: ignorar)"
+
+msgid "Use shortname instead of description"
+msgstr "Usar el nombre corto en lugar de la descripción"
+
+msgid "Version of gdb file to generate (1,2)"
+msgstr "Versión de fichero gdb a generar (1,2)"
+
+msgid "Version of mapsource file to generate (3,4,5)"
+msgstr "Versión de fichero mapsource a generar (3,4,5)"
+
+msgid "Waypoint background color"
+msgstr "Color de fondo para los puntos de ruta"
+
+msgid "Waypoint foreground color"
+msgstr "Color primer plano para los puntos de ruta"
+
+msgid "Waypoint type"
+msgstr "Tipo de punto de trazado"
+
+msgid "Width in pixels of map"
+msgstr "Ancho del mapa, en pixels"
+
+msgid "Width of lines, in pixels"
+msgstr "Ancho de líneas, en pixels"
+
+msgid "Write timestamps with offset x to UTC time"
+msgstr "Escribir marcas de tiempo con un desplazamiento de 'x' sobre la hora UTC"
+
+msgid "Write tracks compatible with Carto Exploreur"
+msgstr "Crear trazas compatibles con Carto Exploreur"
+
+msgid "Zoom level to reduce points"
+msgstr "Nivel de Zoom para reducir puntos"
+
index 1c30b98c5aea0cd5c4c65b9cd930fa85b5518294..788eb972338cfc47dc9ae6d12fe64b8e1f5a1238 100644 (file)
@@ -767,6 +767,7 @@ var
   s, key, value: string;\r
   r: TRegistry;\r
   u: TUpDown;\r
+  v: Integer;\r
 begin\r
   r := TRegistry.Create;\r
   try\r
@@ -799,7 +800,12 @@ begin
         if (value <> '(default)') then\r
         begin\r
           if HasUpDown(TEdit(o.edit), u) then\r
-            u.Position := StrToInt(value)\r
+          begin\r
+            if (o.def <> nil) then\r
+              v := StrToIntDef(o.def, 0) else\r
+              v := 0;\r
+            u.Position := StrToIntDef(value, v);\r
+          end\r
           else\r
             SetStrProp(o.edit, 'Text', value);\r
         end;\r
diff --git a/xcsv.c b/xcsv.c
index 6c246c4c564c982cca12bc4c4e3aa2224ddc151a..c3677c923376f856b4ac86965d61e13e15681bf5 100644 (file)
--- a/xcsv.c
+++ b/xcsv.c
@@ -26,6 +26,7 @@
 #include <ctype.h>
 #include "defs.h"
 #include "csv_util.h"
+#include "jeeps/gpsmath.h"
 
 #if CSVFMTS_ENABLED
 #define MYNAME "XCSV"
@@ -38,6 +39,7 @@ static char *snupperopt = NULL;
 static char *snuniqueopt = NULL;
 char *prefer_shortnames = NULL;
 char *xcsv_urlbase = NULL;
+static char *opt_datum;
 
 static const char *intstylebuf = NULL;
 
@@ -58,6 +60,8 @@ arglist_t xcsv_args[] = {
        {"prefer_shortnames", &prefer_shortnames, 
                "Use shortname instead of description", 
                NULL, ARGTYPE_BOOL, ARG_NOMINMAX },
+       {"datum", &opt_datum, "GPS datum (def. WGS 84)", 
+               NULL, ARGTYPE_STRING, ARG_NOMINMAX}, 
        ARG_TERMINATOR
 };
 
@@ -327,6 +331,31 @@ xcsv_parse_style_line(const char *sbuff)
            cet_convert_init(p, 1);
            xfree(p);
        } else
+
+       if (ISSTOKEN(sbuff, "DATUM")) {
+           p = csv_stringtrim(&sbuff[8], "\"", 1);
+           xcsv_file.gps_datum = GPS_Lookup_Datum_Index(p);
+           is_fatal(xcsv_file.gps_datum < 0, MYNAME ": datum \"%s\" is not supported.", p);
+           xfree(p);
+       } else
+
+       if (ISSTOKEN(sbuff, "DATATYPE")) {
+           p = csv_stringtrim(&sbuff[8], "\"", 1);
+           if (case_ignore_strcmp(p, "TRACK") == 0) {
+               xcsv_file.datatype = trkdata;
+           }
+           else if (case_ignore_strcmp(p, "ROUTE") == 0) {
+               xcsv_file.datatype = rtedata;
+           }
+           else if (case_ignore_strcmp(p, "WAYPOINT") == 0) {
+               xcsv_file.datatype = wptdata;
+           }
+           else {
+               fatal(MYNAME ": Unknown data type \"%s\"!\n", p);
+           }
+           xfree(p);
+       
+       } else
        
        if (ISSTOKEN(sbuff, "IFIELD")) {
            key = val = pfc = NULL;
@@ -510,11 +539,17 @@ xcsv_rd_init(const char *fname)
         xcsv_read_style(styleopt);
     }
 
-    if (global_opts.masked_objective & (TRKDATAMASK|RTEDATAMASK)) {
-       warning(MYNAME " attempt to read %s as a track or route, but this module only supports waypoints on read.  Reading as waypoints instead.\n", fname);
+    if ((xcsv_file.datatype == 0) || (xcsv_file.datatype == wptdata)) {
+       if (global_opts.masked_objective & (TRKDATAMASK|RTEDATAMASK)) {
+           warning(MYNAME " attempt to read %s as a track or route, but this format only supports waypoints on read.  Reading as waypoints instead.\n", fname);
+       }
     }
 
     xcsv_file.xcsvfp = gbfopen(fname, "r", MYNAME);
+    if (opt_datum) {
+       xcsv_file.gps_datum = GPS_Lookup_Datum_Index(opt_datum);
+       is_fatal(xcsv_file.gps_datum < 0, MYNAME ": datum \"%s\" is not supported.", opt_datum);
+    }
 
 }
 
@@ -564,7 +599,10 @@ xcsv_wr_init(const char *fname)
         setshort_badchars(xcsv_file.mkshort_handle, xcsv_file.badchars);
 
     }
-
+    if (opt_datum) {
+       xcsv_file.gps_datum = GPS_Lookup_Datum_Index(opt_datum);
+       is_fatal(xcsv_file.gps_datum < 0, MYNAME ": datum \"%s\" is not supported.", opt_datum);
+    }
 }
 
 static void
diff --git a/xmldoc/babelpdf.xsl b/xmldoc/babelpdf.xsl
new file mode 100644 (file)
index 0000000..1036c6c
--- /dev/null
@@ -0,0 +1,82 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+               xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:exsl="http://exslt.org/common"
+               version="1.0"
+                exclude-result-prefixes="exsl">
+
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
+
+<!-- turn on extensions for newer versions of fop.  In particular, this makes
+     the XSL generate an fo bookmark-tree, which fop translates into bookmarks
+     in the PDF.   RLP -->
+<xsl:param name="fop1.extensions" select="1" />
+
+<!-- This template formats userinput as a block-level element and adds the
+     background and border we use in the HTML doc, for consistency.  RLP -->
+<xsl:template match="userinput">
+  <fo:block background-color="#E5E9EB" padding="6pt" 
+               border="1pt dashed #000000">
+    <xsl:call-template name="inline.boldmonoseq"/>
+  </fo:block>
+</xsl:template>
+
+<!-- This template is used to get rid of a lot of warnings we were getting
+     from fop due to the fact that it doesn't support table-layout="auto".
+     Auto is apparently the default if no table layout is specified. RLP -->
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <xsl:variable name="explicit.table.width">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis"
+                      select="processing-instruction('dbfo')"/>
+      <xsl:with-param name="attribute" select="'list-width'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="table.width">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:text>100%</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:table xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:attribute name="table-layout">fixed</xsl:attribute>
+    <xsl:attribute name="width">
+      <xsl:value-of select="$table.width"/>
+    </xsl:attribute>    
+    <xsl:call-template name="simplelist.table.columns">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <xsl:call-template name="simplelist.vert">
+        <xsl:with-param name="cols">
+          <xsl:choose>
+            <xsl:when test="@columns">
+              <xsl:value-of select="@columns"/>
+            </xsl:when>
+            <xsl:otherwise>1</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+
+</xsl:stylesheet>
index a4b2efb3f8b2788e68e23c1420f2e5fa8814a483..67284051c3436355ac56cb4f01806cc2131c68e5 100644 (file)
@@ -19,19 +19,25 @@ Linux, Solaris, and a variety of processors and compilers.
 </para>
   <para>
   In most cases, the code is as simple to build as running:
- <screen format="linespecific">./configure &amp;&amp; make</screen>
 </para>
+<para><userinput> ./configure &amp;&amp; make</userinput></para>
   <para><ulink url="http://expat.sourceforge.net">Expat</ulink> 
 is strongly recommended for source builds as it is
-required for reading all the XML formats such as GPX.
+required for reading all the XML formats such as GPX.  Fedora users
+may need to 'yum install expat-devel'.  Ubutnu users may need to 
+'apt-get install expat libexpat-dev'.
 </para>
   <para><ulink url="http://libusb.sourceforge.net">libusb</ulink> 
 is recommended for OS/X and Linux if you want to use a USB Garmin.
+Fedora users may need to 'yum install expat-devel'.  Ubutnu users may
+need to 'apt-get install libusb-dev'.
 </para>
 <para>There are additional flags that can be passed to configure to
- customize your build of GPSBabel.   <screen format="linespecific"> ./configure --help</screen> lists all the supported options, but additionally we have:
+ customize your build of GPSBabel.   
 </para>
+<para><userinput>./configure --help</userinput></para> 
 <para>
+lists all the supported options, but additionally we have:
  <option>--disable-shapefile</option> Excludes the shapefile support.
 </para>
 <para>
index 3bc4744458e474554080f52486c88a6d362e6d40..202077d562d8684e6a7817171068bbe457fb9a42 100644 (file)
@@ -10,7 +10,7 @@ a datum for the output file.
 The following is a list of the datums supported by GPSBabel.
 </para>
 
-<simplelist columns="5">
+<simplelist columns="4">
 <member>Adindan</member>
 <member>AFG</member>
 <member>Ain-El-Abd</member>
index 8c93e6393260d1ea7a6960b21d6be17ad7cf9d25..e9ee8a06fb139b8a4c440ab0743da84f74707a17 100644 (file)
@@ -15,43 +15,34 @@ formats.
 </para>
 
 <simplelist columns="5">
+<member>ATV</member>
 <member>Airport</member>
 <member>Amusement Park</member>
+<member>Anchor</member>
 <member>Anchor Prohibited</member>
+<member>Animal Tracks</member>
 <member>Asian Food</member>
+<member>Bait and Tackle</member>
 <member>Ball Park</member>
 <member>Bank</member>
 <member>Bar</member>
 <member>Beach</member>
 <member>Beacon</member>
 <member>Bell</member>
+<member>Big Game</member>
 <member>Bike Trail</member>
-<member>Blue Circle</member>
-<member>Blue Diamond</member>
-<member>Blue Letter A</member>
-<member>Blue Letter B</member>
-<member>Blue Letter C</member>
-<member>Blue Letter D</member>
-<member>Blue Number 0</member>
-<member>Blue Number 1</member>
-<member>Blue Number 2</member>
-<member>Blue Number 3</member>
-<member>Blue Number 4</member>
-<member>Blue Number 5</member>
-<member>Blue Number 6</member>
-<member>Blue Number 7</member>
-<member>Blue Number 8</member>
-<member>Blue Number 9</member>
-<member>Blue Oval</member>
-<member>Blue Rectangle</member>
-<member>Blue Square</member>
-<member>Blue Triangle</member>
+<member>Blind</member>
+<member>Block, Blue</member>
+<member>Block, Green</member>
+<member>Block, Red</member>
+<member>Blood Trail</member>
 <member>Boat Ramp</member>
 <member>Border Crossing (Port Of Entry)</member>
 <member>Bottom Conditions</member>
 <member>Bowling</member>
 <member>Bridge</member>
 <member>Building</member>
+<member>Buoy, White</member>
 <member>Campground</member>
 <member>Car</member>
 <member>Car Rental</member>
@@ -59,10 +50,14 @@ formats.
 <member>Cemetery</member>
 <member>Church</member>
 <member>Circle with X</member>
+<member>Circle, Blue</member>
+<member>Circle, Green</member>
+<member>Circle, Red</member>
 <member>City (Capitol)</member>
 <member>City (Large)</member>
 <member>City (Medium)</member>
 <member>City (Small)</member>
+<member>City Hall</member>
 <member>Civil</member>
 <member>Coast Guard</member>
 <member>Contact, Afro</member>
@@ -70,15 +65,19 @@ formats.
 <member>Contact, Ball Cap</member>
 <member>Contact, Big Ears</member>
 <member>Contact, Biker</member>
+<member>Contact, Blonde</member>
 <member>Contact, Bug</member>
 <member>Contact, Cat</member>
+<member>Contact, Clown</member>
 <member>Contact, Dog</member>
 <member>Contact, Dreadlocks</member>
 <member>Contact, Female1</member>
 <member>Contact, Female2</member>
 <member>Contact, Female3</member>
+<member>Contact, Glasses</member>
 <member>Contact, Goatee</member>
 <member>Contact, Kung-Fu</member>
+<member>Contact, Panda</member>
 <member>Contact, Pig</member>
 <member>Contact, Pirate</member>
 <member>Contact, Ranger</member>
@@ -87,6 +86,8 @@ formats.
 <member>Contact, Sumo</member>
 <member>Controlled Area</member>
 <member>Convenience Store</member>
+<member>Cover</member>
+<member>Covey</member>
 <member>Crossing</member>
 <member>Dam</member>
 <member>Danger Area</member>
@@ -98,6 +99,7 @@ formats.
 <member>Diver Down Flag 1</member>
 <member>Diver Down Flag 2</member>
 <member>Dock</member>
+<member>Dot, White</member>
 <member>Drinking Water</member>
 <member>Dropoff</member>
 <member>Elevation point</member>
@@ -113,37 +115,20 @@ formats.
 <member>Flag, Blue</member>
 <member>Flag, Green</member>
 <member>Flag, Red</member>
+<member>Food Source</member>
 <member>Forest</member>
+<member>Furbearer</member>
 <member>Gambling/casino</member>
 <member>Gas Station</member>
 <member>Geocache</member>
 <member>Geocache Found</member>
-<member>Geographic place name, land</member>
 <member>Geographic place name, Man-made</member>
+<member>Geographic place name, land</member>
 <member>Geographic place name, water</member>
 <member>Ghost Town</member>
 <member>Glider Area</member>
 <member>Golf Course</member>
-<member>Green circle</member>
-<member>Green Diamond</member>
-<member>Green Letter A</member>
-<member>Green Letter B</member>
-<member>Green Letter C</member>
-<member>Green Letter D</member>
-<member>Green Number 0</member>
-<member>Green Number 1</member>
-<member>Green Number 2</member>
-<member>Green Number 3</member>
-<member>Green Number 4</member>
-<member>Green Number 5</member>
-<member>Green Number 6</member>
-<member>Green Number 7</member>
-<member>Green Number 8</member>
-<member>Green Number 9</member>
-<member>Green Oval</member>
-<member>Green Rectangle</member>
-<member>Green Square</member>
-<member>Green Triangle</member>
+<member>Ground Transportation</member>
 <member>Heliport</member>
 <member>Horn</member>
 <member>Hotel</member>
@@ -155,13 +140,28 @@ formats.
 <member>Intl freeway hwy</member>
 <member>Intl national hwy</member>
 <member>Italian food</member>
-<member>Large exit without services</member>
 <member>Large Ramp intersection</member>
+<member>Large exit without services</member>
+<member>Letter A, Blue</member>
+<member>Letter A, Green</member>
+<member>Letter A, Red</member>
+<member>Letter B, Blue</member>
+<member>Letter B, Green</member>
+<member>Letter B, Red</member>
+<member>Letter C, Blue</member>
+<member>Letter C, Green</member>
+<member>Letter C, Red</member>
+<member>Letter D, Blue</member>
+<member>Letter D, Green</member>
+<member>Letter D, Red</member>
+<member>Letterbox Cache</member>
 <member>Levee</member>
+<member>Library</member>
 <member>Light</member>
 <member>Live Theater</member>
 <member>Localizer Outer Marker</member>
 <member>Locationless (Reverse) Cache</member>
+<member>Lodge</member>
 <member>Lodging</member>
 <member>Man Overboard</member>
 <member>Marina</member>
@@ -173,6 +173,7 @@ formats.
 <member>Missed approach point</member>
 <member>Movie Theater</member>
 <member>Multi-Cache</member>
+<member>Multi-Cache</member>
 <member>Museum</member>
 <member>Navaid, Amber</member>
 <member>Navaid, Black</member>
@@ -190,8 +191,41 @@ formats.
 <member>Navaid, White/Red</member>
 <member>Non-directional beacon</member>
 <member>Null</member>
+<member>Number 0, Blue</member>
+<member>Number 0, Green</member>
+<member>Number 0, Red</member>
+<member>Number 1, Blue</member>
+<member>Number 1, Green</member>
+<member>Number 1, Red</member>
+<member>Number 2, Blue</member>
+<member>Number 2, Green</member>
+<member>Number 2, Red</member>
+<member>Number 3, Blue</member>
+<member>Number 3, Green</member>
+<member>Number 3, Red</member>
+<member>Number 4, Blue</member>
+<member>Number 4, Green</member>
+<member>Number 4, Red</member>
+<member>Number 5, Blue</member>
+<member>Number 5, Green</member>
+<member>Number 5, Red</member>
+<member>Number 6, Blue</member>
+<member>Number 6, Green</member>
+<member>Number 6, Red</member>
+<member>Number 7, Blue</member>
+<member>Number 7, Green</member>
+<member>Number 7, Red</member>
+<member>Number 8, Blue</member>
+<member>Number 8, Green</member>
+<member>Number 8, Red</member>
+<member>Number 9, Blue</member>
+<member>Number 9, Green</member>
+<member>Number 9, Red</member>
 <member>Oil Field</member>
 <member>Open 24 Hours</member>
+<member>Oval, Blue</member>
+<member>Oval, Green</member>
+<member>Oval, Red</member>
 <member>Parachute Area</member>
 <member>Park</member>
 <member>Parking Area</member>
@@ -205,34 +239,18 @@ formats.
 <member>Post Office</member>
 <member>Post Office</member>
 <member>Private Field</member>
+<member>Puzzle Cache</member>
+<member>RV Park</member>
 <member>Radio Beacon</member>
 <member>Ramp intersection</member>
-<member>Red circle</member>
-<member>Red Diamond</member>
-<member>Red Letter A</member>
-<member>Red Letter B</member>
-<member>Red Letter C</member>
-<member>Red Letter D</member>
-<member>Red Number 0</member>
-<member>Red Number 1</member>
-<member>Red Number 2</member>
-<member>Red Number 3</member>
-<member>Red Number 4</member>
-<member>Red Number 5</member>
-<member>Red Number 6</member>
-<member>Red Number 7</member>
-<member>Red Number 8</member>
-<member>Red Number 9</member>
-<member>Red Oval</member>
-<member>Red Rectangle</member>
-<member>Red Square</member>
-<member>Red Triangle</member>
+<member>Rectangle, Blue</member>
+<member>Rectangle, Green</member>
+<member>Rectangle, Red</member>
 <member>Reef</member>
 <member>Residence</member>
 <member>Restaurant</member>
 <member>Restricted Area</member>
 <member>Restroom</member>
-<member>RV Park</member>
 <member>Scales</member>
 <member>Scenic Area</member>
 <member>School</member>
@@ -246,11 +264,16 @@ formats.
 <member>Skiing Area</member>
 <member>Skull and Crossbones</member>
 <member>Small City</member>
+<member>Small Game</member>
 <member>Soft Field</member>
+<member>Square, Blue</member>
+<member>Square, Green</member>
+<member>Square, Red</member>
 <member>Stadium</member>
 <member>State Hwy</member>
 <member>Steak</member>
 <member>Street Intersection</member>
+<member>Stump</member>
 <member>Summit</member>
 <member>Swimming Area</member>
 <member>TACAN</member>
@@ -260,23 +283,31 @@ formats.
 <member>Toll Booth</member>
 <member>TracBack Point</member>
 <member>Trail Head</member>
+<member>Tree Stand</member>
+<member>Treed Quarry</member>
+<member>Triangle, Blue</member>
+<member>Triangle, Green</member>
+<member>Triangle, Red</member>
+<member>Truck</member>
 <member>Truck Stop</member>
 <member>Tunnel</member>
 <member>U Marina</member>
 <member>U stump</member>
+<member>US hwy</member>
 <member>Ultralight Area</member>
 <member>Unknown Cache</member>
-<member>US hwy</member>
+<member>Upland Game</member>
 <member>VHF Omni-range</member>
-<member>Virtual cache</member>
 <member>VOR-DME</member>
 <member>VOR/TACAN</member>
+<member>Virtual cache</member>
 <member>Water Hydrant</member>
+<member>Water Source</member>
+<member>Waterfowl</member>
 <member>Waypoint</member>
 <member>Webcam Cache</member>
 <member>Weed Bed</member>
-<member>White Buoy</member>
-<member>White Dot</member>
+<member>Winery</member>
 <member>Wrecker</member>
 <member>Zoo</member>
 </simplelist>
index c15306d7f71bc811f05778a0d740fe2cd1aa97a4..ab3f4fee3169546a037f12b27b8b3c6b862f9747 100644 (file)
@@ -1,7 +1,7 @@
    <preface id="Introduction">
       <title>Introduction</title>
       <section id="The_Problem">
-         <title>The Problem</title>
+         <title>The Problem: Too many incompatible formats</title>
          <para> There are simply too many gratuitously different file formats
 to hold waypoint, track, and route information in various programs
 used by computers and GPS receivers.  
@@ -9,17 +9,28 @@ used by computers and GPS receivers.
 standard in XML to contain all the data, but there are too many
 programs that don't understand it yet and too much data that are in an
 alternate formats.
+</para>
+<para>
+Perhaps you have an Explorist 600 and your friend has a StreetPilot 2720.
+You've collected a a list of your favorite locations as waypoints and you'd
+like to be able to share them.  Unfortunately, his copy of Garmin Mapsource
+won't read data created by your copy of Magellan Directroute.  What you need
+is a program that converts data bewteen the two programs.
+</para>
+<para>
+But GPSBabel actually does much more...
 </para>
       </section>
       <section id="The_Solution">
          <title>The Solution</title>
-         <para> I needed to convert waypoints between a couple of formats, so I
+         <para> The original author of GPSBabel, <ulink url="/people/robertlipe.html">Robert Lipe</ulink>, needed to convert waypoints between a couple of formats, so he
 whipped up a converter and based it on an extensible foundation so
-that it was easy to add new formats.  Most file formats added so far
-have taken under 200 lines of reasonable ISO C so they can be stamped
-out pretty trivially.  Formats that are ASCII text delimited in some
-fixed way can be added with no programming at all via our 'style'
-mechanism.
-</para>
+that it was easy to add new formats and made the program freely available. <ulink url="/people/index.html">Many others</ulink> have contributed to the program since then.</para>
+       <para>  Most file formats added so far have taken under 200 
+       lines of reasonable ISO C so they can be stamped
+       out pretty trivially.  Formats that are ASCII text delimited in some
+       fixed way can be added with no programming at all via our 
+       <link linkend ="Styles">style</link> mechanism.
+       </para>
       </section>
    </preface>
index fc8a209f138e2112a148c0a5cedc134df799d248..352e6e990e5a927e51df0849f87dff6589242e05 100644 (file)
@@ -28,7 +28,9 @@ or want, you must tell GPSBabel to use the xcsv format and have the xcsv
 format use that file.  If you created a new style file called 
 "mystyle.style" and you want to write the  waypoints from
 a GPX file named "mine.gpx" to it, you would issue a command like:
-<screen format="linespecific">gpsbabel -i gpx -f mine.gpx -o xcsv,style=mystyle.style -f mine.new</screen>
+</para>
+<para><userinput>gpsbabel -i gpx -f mine.gpx -o xcsv,style=mystyle.style -f mine.new</userinput></para>
+<para>
 You might then examine <filename>mine.new</filename> to see if it met
 your expectations.  If not, you could continue to tweak 
 <filename>mystyle.style</filename> until it did, rerunning the above
@@ -74,8 +76,9 @@ PROLOGUE      Name    Latitude        Longitude       Description     URL     Type    Container       Diff    Terr
 
 #
 # INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:
-# NOTE: MS S&amp;T ONLY IMPORTS DATA, IT DOESN'T EXPORT THIS ANYWHERE SO WE CAN
-#       HAVE OUR WAY WITH THE FORMATTING. 
+# NOTE: MS S&amp;T ONLY IMPORTS DATA, IT DOESN'T 
+#       EXPORT THIS ANYWHERE SO WE CAN HAVE OUR 
+#       WAY WITH THE FORMATTING. 
 #
 IFIELD SHORTNAME, "", "%s"             # Name
 IFIELD LAT_DECIMAL, "", "%f"           # Latitude
@@ -204,7 +207,28 @@ this file.
 Describes the character set used by this format.  The value given
 must be one listed by 'gpsbabel -l'.    example:
 </para>
-<screen format="linespecific">   ENCODING             UTF-8    # Use UTF-8 for input and output.
+<screen format="linespecific">   ENCODING          UTF-8       # Use UTF-8 for input and output.
+</screen>
+</section>
+<section id="style_global_datum">
+<title>DATUM</title>
+<para>
+This value specifies the GPS datum to be used on read or write. Valid values for this 
+option are listed in <xref linkend="Datums" />.
+</para>
+<screen format="linespecific">   DATUM             European 1950
+</screen>
+</section>
+<section id="style_global_datatype">
+<title>DATATYPE</title>
+<para>
+Specifies the kind of data we have to read or write.
+</para>
+<para>
+By default all data are seen as waypoint data. With DATATYPE you are now able to bind
+a specific type to this format. Possible values are WAYPOINT, ROUTE or TRACK.
+</para>
+<screen format="linespecific">   DATATYPE          ROUTE # route-only format
 </screen>
 </section>
 </section> <!-- global -->
@@ -451,7 +475,7 @@ examples:
 <para>
 example:
 </para>
-<screen format="linespecific">   IFIELD SHORTNAME,"","%s"   # (write shortname in the output file)
+<screen format="linespecific">   IFIELD SHORTNAME,"","%s"
 </screen>
 </section>
 
@@ -465,7 +489,7 @@ example:
 <para>
 examples:
 </para>
-<screen format="linespecific">   IFIELD DESCRIPTION,"","%s" # (write description in the output file)
+<screen format="linespecific">   IFIELD DESCRIPTION,"","%s" 
 </screen>
 </section>
 
@@ -487,7 +511,7 @@ examples:
 <para>
 example:
 </para>
-<screen format="linespecific">   IFIELD URL,"","%s" #  (writes the URL in the output file)
+<screen format="linespecific">   IFIELD URL,"","%s"
 </screen>
 </section>
 
@@ -501,7 +525,7 @@ example:
 <para>
 example:
 </para>
-<screen format="linespecific">   IFIELD URL_LINK_TEXT,"","%s" # (writes link text in the output file)
+<screen format="linespecific">   IFIELD URL_LINK_TEXT,"","%s" 
 </screen>
 </section>
 
@@ -515,7 +539,7 @@ example:
 <para>
 example:
 </para>
-<screen format="linespecific">   IFIELD ICON_DESCR,"","%s" # (writes link text in the output file)
+<screen format="linespecific">   IFIELD ICON_DESCR,"","%s" 
 </screen>
 </section>
 
@@ -610,12 +634,15 @@ examples:
 <para>
 examples:
 </para>
-<screen format="linespecific">   IFIELD LAT_HUMAN_READABLE,"","%c %d %f"   # (writes N 31 40.000)
+<screen format="linespecific">
+   #  (writes N 31 40.000)
+   IFIELD LAT_HUMAN_READABLE,"","%c %d %f"   
+   #  (writes "31 deg 40.000 min N")
    IFIELD LAT_HUMAN_READABLE,"","%d deg %f min %c"
-                              #  (writes "31 deg 40.000 min N")
-          #  Note that this string will confuse the reading routine due 
-          #  to the letter "n" in "min" and the letter "e" in "deg."
-   IFIELD LAT_HUMAN_READABLE,"","%d %d %f%c" # (writes 31 40 00.000N)
+   #  Note that this string will confuse the reading routine due 
+   #  to the letter "n" in "min" and the letter "e" in "deg."
+   # (writes 31 40 00.000N)
+   IFIELD LAT_HUMAN_READABLE,"","%d %d %f%c" 
 </screen>
 </section>
 
index df0109323e176b5f7cdc037b21f4417aa11be49a..42bb089889f447e805eb82134983b0a27cca01cc 100644 (file)
@@ -2,13 +2,10 @@
       <title>Usage</title>
       <sect1 id="Invocation">
          <title>Invocation</title>
-         <para>Invocation was meant to be flexible.  Unfortunately,
-         that can sometimes lead to unwieldy command lines.</para>
-
 <para>
 If you're using GPSBabel, you will need to know how to do at least two things:
 read data from a file, and write it to another file.  There are four basic
-commands you need to know to do those things:
+options you need to know to do those things:
 </para>
 <segmentedlist>
 <?dbhtml list-presentation="table"?>
@@ -36,13 +33,18 @@ commands you need to know to do those things:
 The <parameter class="command">format</parameter> parameters in the above list
 refer to the names of formats or file types supported by GPSBabel. 
 </para>
-<screen format="linespecific">gpsbabel -? </screen>
+<para><userinput>gpsbabel -? </userinput></para>
 <para>will always show you the supported file types.  In this document, the
 various supported formats are listed in <xref linkend="The_Formats" />.  The 
 name that you would use on the command line follows the format name in 
 parentheses.
 </para>
 <para>
+Options are <emphasis>always</emphasis> processed in order from left to right.
+In practical terms, this means that things you want to read should appear
+in the command before things you want to write.
+</para>
+<para>
 The <parameter class="command">filename</parameter> parameters specify the 
 name of a file to be read or written.
 </para>
@@ -51,15 +53,15 @@ name of a file to be read or written.
          this program, just tell it what you're reading, where to read
          it from, what you're writing, and what to write it to.  For
          example:</para>
-         <screen format="linespecific">gpsbabel -i geo -f /tmp/geocaching.loc -o gpx -F /tmp/geocaching.gpx</screen>
+         <para><userinput>gpsbabel -i geo -f /tmp/geocaching.loc -o gpx -F /tmp/geocaching.gpx</userinput></para>
          <para>tells it to read the file "/tmp/geocaching.loc" in geocaching.com
          format and create a new file in GPX format.</para>
          <para> This command will read from a Magellan unit attached
          to the first serial port on a Linux system (device names will
          vary on other OSes) and write them as a geocaching loc file.
          The second command does the same on Microsoft Windows.</para>
-         <screen format="linespecific">gpsbabel -i magellan -f /dev/ttyS0 -o geo -F mag.loc</screen>
-         <screen format="linespecific">gpsbabel -i magellan -f com1 -o geo -F mag.loc</screen>
+         <para><userinput>gpsbabel -i magellan -f /dev/ttyS0 -o geo -F mag.loc</userinput></para>
+         <para><userinput>gpsbabel -i magellan -f com1 -o geo -F mag.loc</userinput></para>
          <para>Optionally, you may specify <parameter moreinfo="none">"-s"</parameter> in any command line.  This
          causes the program to ignore any "short" names that may be
          present in the source data format and synthesize one from the
@@ -71,8 +73,37 @@ name of a file to be read or written.
          the 'GC1234' ones that are optimized for NMEA-only receivers.
          A geocacher with a Magellan receiver may thus find commands
          like this useful.</para>
-         <screen format="linespecific"> gpsbabel -s -i geo -f geocaching.loc -o magellan -F /dev/ttyS0  </screen>
-       <screen format="linespecific"> gpsbabel -s -i geo -f geocaching.loc -o magellan -F com1</screen>
+         <para><userinput>gpsbabel -s -i geo -f geocaching.loc -o magellan -F /dev/ttyS0  </userinput></para>
+       <para><userinput>gpsbabel -s -i geo -f geocaching.loc -o magellan -F com1</userinput></para>
+      </sect1>
+      <sect1 id="Suboptions">
+       <title>Suboptions</title>
+       <para>
+         Many of the available format options in GPSBabel can themselves
+         take options.   While we try to make all the formats do the most
+         sensible thing possible without any extra options, this allows
+         great power and flexibility in the operation of the program.
+       </para>
+       <para>
+         Suboptions are comma separated and immediately follow the option
+         itself. The available suboptions are listed on the individual 
+         format pages.  We'll make an example from <xref linkend="fmt_kml" />:
+       </para>
+         <para><userinput>gpsbabel -i gpx -f file.gpx -o kml,deficon="file://myicon.png",lines=0 -F one.kml -o kml -F two.kml</userinput></para>
+       <para>
+       This command will read the GPX file <filename>file.gpx</filename>
+       and create two KML files.    <filename>one.kml</filename> will
+       have the given icon and no lines between track and routepoints.
+       <filename>two.kml</filename> will be created with the defaults used
+       in the KML writer.
+       </para>
+       <para>
+       Suboptions for the various formats allow you to change serial speeds,
+       pass arguments to filters, change the type of file written, override
+       icon defaults, and lots of other things.   The suboptions for each
+       filetype are documented on the page in this document that describes
+       the option itself.
+       </para>
       </sect1>
       <sect1 id="Advanced_Usage">
          <title>Advanced Usage</title>
@@ -93,36 +124,43 @@ merged data to multiple destinations.
          <parameter moreinfo="none">-i</parameter> argument is seen.
          Files are read in the order they appear. So you could merge
          three input files into one output file with: </para>
-         <screen format="linespecific">gpsbabel -i geo -f 1.loc -f 2.loc -f 3.loc -o geo -F big.loc</screen>
+         <para><userinput>gpsbabel -i geo -f 1.loc -f 2.loc -f 3.loc -o geo -F big.loc</userinput></para>
          <para>You can merge files of different types:</para>
-         <screen format="linespecific">gpsbabel  -i geo -f 1.loc -i gpx -f 2.gpx -i pcx 3.pcx \ 
--o gpsutil -F big.gps</screen>
+         <para><userinput>gpsbabel  -i geo -f 1.loc -i gpx -f 2.gpx -i pcx 3.pcx  
+-o gpsutil -F big.gps</userinput></para>
          <para> You can write the same data in different output formats:</para>
-         <screen format="linespecific">gpsbabel -i geo -f 1.loc -o gpx -F 1.gpx -o pcx 1.wpt</screen>
+         <para><userinput>gpsbabel -i geo -f 1.loc -o gpx -F 1.gpx -o pcx -F 1.wpt</userinput></para>
          <para>If you want to change the character set of input or/and
          output side you can do this with the option <option>-c
          &lt;character set&gt;</option>. You can get a complete list
          of supported character sets with "gpsbabel -l".  To change
          the character set on both sides you should do this:</para>
-         <screen format="linespecific">gpsbabel -i xcsv,style=foo.style -c latin1 -f foo  \
-                -o xcsv,style=bar.style -c ms-ansi -F bar</screen>
+         <para><userinput>gpsbabel -i xcsv,style=foo.style -c latin1 -f foo -o xcsv,style=bar.style -c ms-ansi -F bar</userinput></para>
          <para>Note, that some formats has a fixed character set and ignore this option.</para>
       </sect1>
       <sect1 id="Route_And_Track_Modes">
          <title>Route and Track Modes</title>
-         <para> Most formats will make reasonable attempt to work
+         <para> Most formats supported by GPSBabel will make a reasonable attempt to work
          transparently with waypoints, tracks, and routes.  Some
-         formats, like 'garmin' and 'magellan' require the <parameter moreinfo="none">-t</parameter> flag to work with tracks and
+         formats, like <link linkend="fmt_garmin">garmin</link> and <link linkend="fmt_magellan">magellan</link> require the <parameter moreinfo="none">-t</parameter> flag to work with tracks and
          <parameter moreinfo="none">-r</parameter> to work with
          routes. <parameter moreinfo="none">-w</parameter> is for
          waypoints, and is the default. So if you wanted to read all
-         data from your unit into a gpx file, you might use a command
+         data from a Magellan Meridian GPS receiver into a gpx file, you might use a command
          like:</para>
-         <screen format="linespecific"> gpsbabel -t -r -w -i magellan -f com1:  -o gpx -F backup.gpx</screen>
+         <para><userinput> gpsbabel -t -r -w -i magellan -f com1:  -o gpx -F backup.gpx</userinput></para>
          <para> Tracks and routes are advanced features and don't try
          to handle every possible hazard that can be encountered
          during a conversion.  If you're merging or converting files
          of similar limitations, things work very well.</para>
+        <para> Many of those hazards can be overcome with our filters
+        but there are often compromises to be made.  For example, if you
+        have a GPX route that contains  150 turn points but you're sending
+        the route to a GPS receiver that supports only 30 turnpoints, something has
+        to go.   One might use our 'simplify' filter to produce a route that
+        retained the 30 most mathematically significant turnpoints but that
+        may not really be the route you had in mind.
+        </para>
          <para> Tracks and routes will sometimes be converted to a
          list of waypoints when necessary, f.i. when writing into one
          of the CSV formats. The inverse operation is not supported
@@ -215,20 +253,20 @@ merged data to multiple destinations.
       (i.e. wrapper applications using GPSBabel in the background). 
        The inifile mechanism can be disabled with an empty filename.
     </para>
-    <screen format="linespecific">gpsbabel -p "" -i gpx -f something.gpx -o tiger -F -</screen>
+    <para><userinput>gpsbabel -p "" -i gpx -f something.gpx -o tiger -F -</userinput></para>
 </sect1>
 <sect1 id="tracking">
   <title>Realtime tracking</title>
     <para>
-      Introduced in GPSBabel 1.3.1, we now have an <emphasis>experimental</emphasis>  feature for realtime tracking via the new '-T' option.  This reads position reports from selected formats and writes an output file when a position report is received. 
+      Introduced in GPSBabel 1.3.1, we now have an <emphasis>experimental</emphasis>  feature for realtime tracking via the new <option>-T</option> option.  This reads position reports from selected formats and writes an output file when a position report is received. 
     </para>
     <para>
          As of this writing, Garmin's PVT protocol and NMEA are supported 
          inputs and KML is supported on output.   Additional formats 
          may be added by interested parties later.
     </para>
+    <para><userinput>gpsbabel -T -i garmin -f usb: -o kml -F xxx.kml</userinput></para>
     <para>
-    <screen format="linespecific">gpsbabel -T -i garmin -f usb: -o kml -F xxx.kml</screen>
          Will read the USB-connected Garmin and rewrite 'xxx.kml' atomically,
          suitable for a self-refreshing network link in Google Earth.
     </para>
@@ -238,18 +276,18 @@ merged data to multiple destinations.
   <title>Batch mode (command files)</title>
   <para>
        In addition to reading arguments from the command line, GPSBabel can
-       read directions from batch (or command) files via the '-b' option.
+       read directions from batch (or command) files via the <option>-b</option> option.
   </para>
   <para>
     These files are ideal for holding long command lines, long file lists, complex filters 
     and so on. You can use all GPSBabel options and combinations when writing
-    such files. Nesting batch files by using the '-b' option within a batch file is supported.
+    such files. Nesting batch files by using the <option>-b</option> option within a batch file is supported.
   </para>
   <para>
   Here is an example demonstrating segmenting a large command line
   by placing the input and filtering directives in a file called 'all_my_files'.
-  <screen format="linespecific">gpsbabel -b all_my_files -o gdb -F all_my_tracks.gdb</screen>
   </para>
+  <para><userinput>gpsbabel -b all_my_files -o gdb -F all_my_tracks.gdb</userinput></para>
   <para>
     'all_my_files' could look like this:
   </para>
index e3a032dc6480ab101835de1910b99525b8303b76..3b901a28e0d4687a7e754e6f941138e158d91891 100644 (file)
@@ -37,6 +37,6 @@ Assuming the arc above is in a file called
 would include only points within one mile of the section of Lima Road 
 covered by the arc.
 </para>
-<screen format="linespecific">gpsbabel -i geo -f 1.loc -x arc,file=lima_rd.txt,distance=1 -o mapsend -F 2.wpt</screen>
+<para><userinput>gpsbabel -i geo -f 1.loc -x arc,file=lima_rd.txt,distance=1 -o mapsend -F 2.wpt</userinput></para>
 </example>
       
index 962549f652e59567abdd51cff4cb08af595c0fe8..82bd9bf902ecf3abb3dcd954e91d82757ebda6e4 100644 (file)
@@ -6,7 +6,7 @@ for a given configuration of GPS satellites.
 </para>
 <example id="example_discard_filter">
 <title>Using the discard filter</title>
-<screen format="linespecific"> gpsbabel -i gpx -f in.gpx -x discard,hdop=10,vdop=20,hdopandvdop -o gpx -F out.gpx</screen>
+<para><userinput> gpsbabel -i gpx -f in.gpx -x discard,hdop=10,vdop=20,hdopandvdop -o gpx -F out.gpx</userinput></para>
 </example>
 <para> Contributed by Tobias Minich.</para>
       
index 79b85af9d729a002204827ebf5e8724cb65c2cc7..2d5558d3f5a889e81d340acbb4831eccff221606 100644 (file)
@@ -15,6 +15,6 @@ Generally, at least one of these options is required.
   <link linkend="fmt_gpx">gpx</link> file that more than likely 
   contains only unique points and point data.
   </para>
-  <screen format="linespecific"> gpsbabel -i gpx -f 1.gpx -f 2.gpx -x duplicate,location,shortname -o gpx -F merged_with_no_dupes.gpx</screen>
+  <para><userinput> gpsbabel -i gpx -f 1.gpx -f 2.gpx -x duplicate,location,shortname -o gpx -F merged_with_no_dupes.gpx</userinput></para>
 </example>
       
index 2b08aec0a8ed6684db47bec93218eacb2987f5a4..5f5f5a16f2c0e72d8e09bfde2c61c8416d4b1b61 100644 (file)
@@ -12,19 +12,19 @@ must specify either the
 This command line reads track.gpx and inserts points wherever two adjacent
 trackpoints are more than 10 seconds apart:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f track.gpx -x interpolate,time=10 -o gpx -F newtrack.gpx</screen>
+<para><userinput>gpsbabel -i gpx -f track.gpx -x interpolate,time=10 -o gpx -F newtrack.gpx</userinput></para>
 
 <para>
 This command reads track.gpx and inserts points wherever two adjacent
 trackpoints are more than 15 kilometers apart:
 </para>
 
-<screen format="linespecific">gpsbabel -i gpx -f track.gpx -x interpolate,distance=15k -o gpx -F newtrack.gpx</screen>
+<para><userinput>gpsbabel -i gpx -f track.gpx -x interpolate,distance=15k -o gpx -F newtrack.gpx</userinput></para>
 
 <para>
 This command reads track.gpx and inserts points wherever two adjacent
 trackpoints are more than 2 miles apart:
 </para>
 
-<screen format="linespecific">gpsbabel -i gpx -f track.gpx -x interpolate,distance=2m -o gpx -F newtrack.gpx</screen>
+<para><userinput>gpsbabel -i gpx -f track.gpx -x interpolate,distance=2m -o gpx -F newtrack.gpx</userinput></para>
 </example>      
index 824f20d560254b3905f7667590b60395553c6557..21e9aa8fa3530d60be1078959b42c548d6ff171d 100644 (file)
@@ -11,6 +11,6 @@ waypoints and you want a GPX file that contains only tracks,
 you may use this filter to remove the waypoints and the routes 
 with this command:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f bigfile.gpx -x nuketypes,waypoints,routes -o gpx -F tracksonly.gpx</screen>
+<para><userinput>gpsbabel -i gpx -f bigfile.gpx -x nuketypes,waypoints,routes -o gpx -F tracksonly.gpx</userinput></para>
 </example>
    
index 582a64b28079c92fccd0602987ae8a6bc3f353cb..bdbcfab60a4fa51a79655d63eef9bb5c73950d8b 100644 (file)
@@ -12,6 +12,6 @@ This option may be used to implement an "ignore list."  In the following
 example, the duplicate filter is used to remove a list of waypoints to be
 ignored from a larger collection of waypoints:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f waypoints.gpx -i csv -f to_ignore.csv -x duplicate,shortname,all -o gpx -F filtered.gpx</screen>
+<para><userinput>gpsbabel -i gpx -f waypoints.gpx -i csv -f to_ignore.csv -x duplicate,shortname,all -o gpx -F filtered.gpx</userinput></para>
 </example>
 
index 20741d15b27d30d5a63c22538ad316a0da110697..8faefd5871636594766e0c8240270d19b0fb4a4b 100644 (file)
@@ -11,7 +11,7 @@ geocaches in a Groundspeak pocket query:
 <example id="Correcting_Cache_Locations">
 <title>Using the duplicate filter to correct the locations of "puzzle"
 geocaches</title>
-<screen format="linespecific">gpsbabel -i gpx -f 43622.gpx -i csv -f corrections.csv -x duplicate,shortname,correct -o gpx -F 43622-corrected.gpx</screen>
+<para><userinput>gpsbabel -i gpx -f 43622.gpx -i csv -f corrections.csv -x duplicate,shortname,correct -o gpx -F 43622-corrected.gpx</userinput></para>
 <para>
 After this command is run, the waypoints in the output file will have all 
 of the descriptive information from <filename>43622.gpx</filename>, but 
index 5ca5bbbf9794b42ce795b36e3f737095c58b6abc..91b4cb3b97b455ba7184a8a8bb00c4c534c551cd 100644 (file)
@@ -9,6 +9,6 @@ dropped.
 Suppose you want to merge tracks recorded with two different GPS devices 
 at the same time.  To do that, use this command line:
 </para>
-<screen format="linespecific">gpsbabel -t -i gpx -f john.gpx -i gpx -f doe.gpx -x track,merge,title="COMBINED LOG" -o gpx -F john_doe.gpx</screen>
+<para><userinput>gpsbabel -t -i gpx -f john.gpx -i gpx -f doe.gpx -x track,merge,title="COMBINED LOG" -o gpx -F john_doe.gpx</userinput></para>
 </example>
 
index 0641de1e9f4113d606654b128e3489228733b52f..22452828aca50f485b3da20f5bff752e50590f2a 100644 (file)
@@ -8,6 +8,6 @@ time zone.
 <para>
 The following command line will shift all tracks to be one hour later.
 </para>
-<screen format="linespecific">gpsbabel -t -i gpx -f in.gpx -x track,move=+1h -o gpx -F out.gpx</screen>
+<para><userinput>gpsbabel -t -i gpx -f in.gpx -x track,move=+1h -o gpx -F out.gpx</userinput></para>
 </example>
 
index 7fc4db8f53c2ca0938414af85d3d3d3d43081eef..65a40ae6820758c48178d255350bd79e81560ce1 100644 (file)
 
          <para> For example, to split the track if the distance between
          points is greater than 100 meters, use this:</para>
-         <screen format="linespecific">
-gpsbabel -t \
-     -i gpx -f in.gpx \
-     -x track,pack,sdistance=0.1k" \
+         <para><userinput>
+gpsbabel -t 
+     -i gpx -f in.gpx 
+     -x track,pack,sdistance=0.1k" 
      -o gpx -F out.gpx
-</screen>
+</userinput></para>
         <para> The sdistance option can be combined with the split option.
         The track then will be split only if both time and distance
         interval exceeds the supplied values. This technique can be used to 
@@ -26,11 +26,11 @@ gpsbabel -t \
         This example splits the track
         if the device is without signal for at least 5 minutes
         and during this time moves more than 300 meters:</para>
-        <screen format="linespecific">
-gpsbabel -t \
-     -i gpx -f in.gpx \
-     -x track,pack,sdistance=0.3k,split=5m \
+        <para><userinput>
+gpsbabel -t 
+     -i gpx -f in.gpx 
+     -x track,pack,sdistance=0.3k,split=5m 
      -o gpx -F out.gpx
-</screen>
+</userinput></para>
 
 
index 00af234b5a5a63d00ffd61c8b8a64083c102579b..b8df748f1274d2487f753b9ec871ccf6d9010db8 100644 (file)
@@ -4,16 +4,12 @@
          split a single tracks into separate tracks for each day and
          name them, use this:
       </para>
-         <screen format="linespecific">
-gpsbabel -t -i gpx -f in.gpx -x \
-   track,split,title="ACTIVE LOG \
-    # %Y%m%d" -o gpx -F out.gpx</screen>
+         <para><userinput> gpsbabel -t -i gpx -f in.gpx -x track,split,title="ACTIVE LOG # %Y%m%d" -o gpx -F out.gpx</userinput></para>
          <para> If the input has multiple tracks, pack them together before
 splitting them back apart per day thusly: </para>
-         <screen format="linespecific">            
-gpsbabel -t   -i gpx -f in.gpx  \
-     -x track,pack,split,title="ACTIVE LOG # %D"       \
-     -o gpx -F out.gpx</screen>
+         <para><userinput>                 gpsbabel -t   -i gpx -f in.gpx  
+     -x track,pack,split,title="ACTIVE LOG # %D"       
+     -o gpx -F out.gpx</userinput></para>
          <para> Additionally you can add an interval to the split
          option.  With this the track will be split if the time
          between two points is greater than this parameter. The
@@ -24,9 +20,9 @@ gpsbabel -t   -i gpx -f in.gpx  \
 </para>
          <para> For example, to split a track based on an four hour
          interval, use this:</para>
-         <screen format="linespecific">            
-gpsbabel -t 
-     -i gpx -f in.gpx 
-     -x track,pack,split=4h,title="LOG # %c" 
+         <para><userinput>            
+gpsbabel -t 
+     -i gpx -f in.gpx 
+     -x track,pack,split=4h,title="LOG # %c" 
      -o gpx -F out.gpx
-</screen>
+</userinput></para>
index 9df4086fda848c017f7426ab1c1920561ce73810..143e05d22d5a47c845646e8d11a31d29d7701b38 100644 (file)
@@ -20,5 +20,5 @@ given date, you need not specify the minutes or seconds.
 To get only the parts of a track that were mapped on 20 July 2005
 between 10 AM and 6 PM, use this command line:
 </para> 
-<screen format="linespecific">gpsbabel -t -i gpx -f in.gpx -x track,start=2005072010,stop=2005072018 -o gpx -F out.gpx </screen>
+<para><userinput>gpsbabel -t -i gpx -f in.gpx -x track,start=2005072010,stop=2005072018 -o gpx -F out.gpx </userinput></para>
 </example>
diff --git a/xmldoc/filters/options/transform-del.xml b/xmldoc/filters/options/transform-del.xml
new file mode 100644 (file)
index 0000000..46b78d6
--- /dev/null
@@ -0,0 +1,9 @@
+<para>
+This option, when used in connction with the wpt, rte, or trk options, tells
+GPSBabel to delete the source data after conversion.  This is most useful if 
+you are trying to avoid duplicated data in the output.
+</para>
+<example id="transform_del">
+<title>Convert a GPX track to GPX waypoints, tossing the original track</title>
+<para><userinput>gpsbabel -i gpx -f blah.gpx -x transform,wpt=trk,del -o gpx -F converted.gpx</userinput></para>
+</example>
diff --git a/xmldoc/filters/options/transform-rte.xml b/xmldoc/filters/options/transform-rte.xml
new file mode 100644 (file)
index 0000000..4382e0f
--- /dev/null
@@ -0,0 +1,11 @@
+<para>
+This option selects the destination type of this filter to be routes.  Choose this when you want to convert tracks into waypoints routes.  A single route will be created in the sequence they appear in the input.
+</para>
+<example id="transform_to_rte">
+<title>Converting a pile of waypoints to a GPX route</title>
+<para>
+Say you you have a data file that came from CSV file that you want to convert  
+to a GPX route that can be loaded into Mapsource.  Use the following command:
+</para>
+<para><userinput>gpsbabel -i csv -f blah.txt -x transform,rte=wpt -o gdb -F blah.gdb</userinput></para>
+</example>
diff --git a/xmldoc/filters/options/transform-trk.xml b/xmldoc/filters/options/transform-trk.xml
new file mode 100644 (file)
index 0000000..d17d98b
--- /dev/null
@@ -0,0 +1,13 @@
+<para>
+This option selects the destination type of this filter to be tracks.  
+Choose this when you want to create tracks from a list of waypoints or routes. 
+A single track will be created in the sequence they appear in the input.
+</para>
+<example id="transform_to_trk">
+<title>Converting a pile of waypoints to a GPX track</title>
+<para>
+Say you you have a data file that came from CSV file that you want to convert  
+to a GPX track that can be loaded into Mapsource.  Use the following command:
+</para>
+<para><userinput>gpsbabel -i csv -f blah.txt -x transform,trk=wpt -o gdb -F blah.gdb</userinput></para>
+</example>
diff --git a/xmldoc/filters/options/transform-wpt.xml b/xmldoc/filters/options/transform-wpt.xml
new file mode 100644 (file)
index 0000000..513b5ef
--- /dev/null
@@ -0,0 +1,11 @@
+<para>
+This option selects the destination type of this filter to be waypoints.  
+Choose this when you want to convert tracks or routes into waypoints.
+</para>
+<example id="transform_to_wpt">
+<title>Converting a track to a sequence of waypoints</title>
+<para>
+Say you you have a KML file that contains a track but you want to convert it to a CSV file that can contain only waypoints, perhaps to import into a spreadsheet.  Use the following command:
+</para>
+<para><userinput>gpsbabel -i kml -f blah.kml -x transform,wpt=trk -o csv -F blah.txt</userinput></para>
+</example>
index a193f903e05f5f7b0e908b7b7a6c4930c2f52660..ddf2699f6a3607a79fb3363fa8b568d2ebfec6b7 100644 (file)
@@ -48,7 +48,7 @@ Suppose you have a polygon file that defines the border of your county,
 called mycounty.txt.  This command line will give you only the points 
 in your county:
 </para>
-<screen format="linespecific">gpsbabel -i geo -f 1.loc -x polygon,file=mycounty.txt -o mapsend -F 2.wpt</screen>
+<para><userinput>gpsbabel -i geo -f 1.loc -x polygon,file=mycounty.txt -o mapsend -F 2.wpt</userinput></para>
 </example>
 <example id="example_in_or_close_to">
 <title>Using the polygon and arc filters to find points in or nearly in a 
@@ -61,11 +61,11 @@ boundaries of your polygon are not quite perfect, so you want to provide a
 buffer zone around it in case there are points nearby that should be in the 
 polygon but aren't quite.
 </para>
-<screen>
+<para><userinput>
 gpsbabel -i gpx -f points.gpx -x stack,push -x polygon,file=mycounty.txt 
 -x stack,swap -x arc,file=mycounty.txt,distance=1k -x stack,pop,append 
 -x duplicate,shortname -o gpx -F nearmycounty.gpx
-</screen>
+</userinput></para>
 <para>
 This command makes a copy of the points, finds the ones that are in your
 your county, swaps that result with the copy of the original set of points,
index 13ff374a0fe8218a7d8257c36f545f52452d2baa..01df222c717121f98cd5ada5f8ee832e2c312572 100644 (file)
@@ -10,6 +10,6 @@ has come before.
 The following command removes multiple points that are within 
 one foot of each other, leaving just one.
 </para>
-<screen format="linespecific">gpsbabel -i geo -f 1.loc -f 2.loc -x position,distance=1f -o mapsend -F 3.wpt</screen>
+<para><userinput>gpsbabel -i geo -f 1.loc -f 2.loc -x position,distance=1f -o mapsend -F 3.wpt</userinput></para>
 </example>
       
index cdc970f4024ffc05e5124113aa27dd0556c2ed8b..1e3f4ffd78cf13caad79d97f75c67546818c6252 100644 (file)
@@ -12,6 +12,6 @@ center appear earlier in the output file.
  <para>This example command line would include only points within 1 1/2 miles
        of N30.000 W 90.000</para>
 
-<screen format="linespecific">gpsbabel -i geo -f 1.loc -x radius,distance=1.5M,lat=30.0,lon=-90.0 -o mapsend -F 2.wpt</screen>
+<para><userinput>gpsbabel -i geo -f 1.loc -x radius,distance=1.5M,lat=30.0,lon=-90.0 -o mapsend -F 2.wpt</userinput></para>
 </example>
       
index 976f6190197bbb33f261f88a41cc8e3852a4bc99..026551bc0ffe00aa3ff71cc53a147769f2ed4e6d 100644 (file)
@@ -17,5 +17,5 @@ For example, suppose you have a route from Street Atlas 2003 that you
 wish to use with a Magellan GPS receiver that only supports up to 50 points 
 in a route:
 </para>
-<screen format="linespecific">gpsbabel -r -i saroute -f RoadTrip.anr -x simplify,count=50 -o magellan  -F grocery.rte</screen>
+<para><userinput>gpsbabel -r -i saroute -f RoadTrip.anr -x simplify,count=50 -o magellan  -F grocery.rte</userinput></para>
       
index 45934ad15ee2f5fb5167d2eaf103a324707fb7b7..8330123558b4932778f4ceeacfdafe64dc1280da 100644 (file)
@@ -21,29 +21,29 @@ can fit in your computer's memory.
  duplicates can be removed with the DUPLICATE filter; see
  above.)
 </para>
-         <screen format="linespecific">           
-gpsbabel -i gpx -f in.gpx \
-         -x stack,push,copy \
-         -x polygon,file=county_a.txt \    
-         -x stack,swap \
-         -x polygon,file=county_b.txt \
-         -x stack,pop,append \
+         <para><userinput>           
+gpsbabel -i gpx -f in.gpx 
+         -x stack,push,copy 
+         -x polygon,file=county_a.txt 
+         -x stack,swap 
+         -x polygon,file=county_b.txt 
+         -x stack,pop,append 
          -o gpx -F out.gpx
-</screen>
+</userinput></para>
          <para> This example reads a large list of waypoints and
          extracts the points within 20 miles of each of two cities,
          writing the waypoint descriptions into two different PalmDoc
          files and exporting all of the points to the GPS receiver:
 </para>
-         <screen format="linespecific">           
-gpsbabel -i gpx -f indiana.gpx \
-         -x stack,push,copy \
-         -x radius,lat=41.0765,lon=-85.1365,distance=20m \
-         -o palmdoc,dbname=Fort\ Wayne -F fortwayne.pdb \
-         -x stack,swap \
-         -x radius,lat=39.7733,lon=-86.1433,distance=20m \
-         -o palmdoc,dbname=Indianapolis -F indianapolis.pdb \
-         -x stack,pop,append \
+         <para><userinput>           
+gpsbabel -i gpx -f indiana.gpx 
+         -x stack,push,copy 
+         -x radius,lat=41.0765,lon=-85.1365,distance=20m 
+         -o palmdoc,dbname=Fort\ Wayne -F fortwayne.pdb 
+         -x stack,swap 
+         -x radius,lat=39.7733,lon=-86.1433,distance=20m 
+         -o palmdoc,dbname=Indianapolis -F indianapolis.pdb 
+         -x stack,pop,append 
          -o magellan -F fwaind.wpt
-</screen>
+</userinput></para>
       
index 87a87d2e098107ef5932e3a9e82f5a47765f4d11..ddb82ca11fc09273763387630712f635b49c7adc 100644 (file)
@@ -9,7 +9,9 @@
 </para>
 <para>
   The following example show you how to create a route from a waypoint table.
-  <screen format="linespecific">gpsbabel -i csv waypts.txt -x transform,rte=wpt -o gpx -F route.gpx</screen>
+</para>
+  <para><userinput>gpsbabel -i csv waypts.txt -x transform,rte=wpt -o gpx -F route.gpx</userinput></para>
+<para>
   Only the first letter of option value decides which transformation will be done.
   Depending on the used option it can be only 'W' for waypoints, 'R' for routes or
   'T' for tracks.
diff --git a/xmldoc/formats/alantrl.xml b/xmldoc/formats/alantrl.xml
new file mode 100644 (file)
index 0000000..19fff93
--- /dev/null
@@ -0,0 +1,29 @@
+<para>
+GPSBabel supports .wpr and .trl files for Alan Map500 devices running operating 
+system versions 2.xx.
+</para>
+
+<para>
+.trl contain files tracklogs. If you use a CF-Card based
+operating system, tracklog files must have a <filename>.TRL</filename> extension when
+copied to the CF-Card. The default filename is <filename>TEMP_TRK.TRL</filename>.
+Only one <filename>.TRL</filename> file may be present.
+</para>
+
+<para>
+Alan's operating system 3.0 for Map500 is not supported yet.
+At the time of this writing, OS3 is still beta.
+Documentation on the new dataformats is sparse.
+</para>
+
+<para>
+The Alan Map500 handheld GPSr is identical to the Holux GM101.
+This GPSBabel module has only been tested against the Alan Map500.
+Still, if you use a GM101, GPSBabel will probably be able to convert
+your waypoints, routes and tracklogs.
+</para>
+
+<para>
+For more information on the Alan Map500 visit
+<ulink url="http://www.alan-electronics.de/gps/gpsuebersicht.php3">Alan Germany</ulink>. There is very informative <ulink url="http://www.alan-germany.de/forum/index.php">forum</ulink>, too. The forum language is German but posts in English will be answered, too.
+</para>
diff --git a/xmldoc/formats/alanwpr.xml b/xmldoc/formats/alanwpr.xml
new file mode 100644 (file)
index 0000000..645925b
--- /dev/null
@@ -0,0 +1,30 @@
+<para>
+GPSBabel supports .wpr and .trl files for Alan Map500 devices running operating 
+system versions 2.xx.
+</para>
+
+<para>
+.wpr files contain waypoints and routes. If you use a CF-Card based
+operating system, waypoint files must have a <filename>.WPR</filename> extension when
+copied to the CF-Card. The default filename is <filename>TEMPWPRT.WPR</filename>.
+Only one <filename>.WPR</filename> file may be present.
+</para>
+
+<para>
+Alan's operating system 3.0 for Map500 is not supported yet.
+At the time of this writing, OS3 is still beta.
+Documentation on the new dataformats is sparse.
+</para>
+
+<para>
+The Alan Map500 handheld GPSr is identical to the Holux GM101.
+This GPSBabel module has only been tested against the Alan Map500.
+Still, if you use a GM101, GPSBabel will probably be able to convert
+your waypoints, routes and tracklogs.
+</para>
+
+<para>
+For more information on the Alan Map500 visit
+<ulink url="http://www.alan-electronics.de/gps/gpsuebersicht.php3">Alan Germany</ulink>. There is very informative <ulink url="http://www.alan-germany.de/forum/index.php">forum</ulink>, too. Forum language is German but posts in English will be answered,
+too.
+</para>
index 9d9a4da01d92e82e89af0ef9cf81f36d555f4086..96ee1443552b66f9aa215bd102e0b6640632ff43 100644 (file)
@@ -1,5 +1,5 @@
 <para> 
-This format supports the DeLorme ".an1" drawing file format.  It can 
+This format supports the <ulink url="http://www.delorme.com">DeLorme</ulink> ".an1" drawing file format.  It can 
 currently be used to either read or write drawing files.  If you use 
 this format to create drawing files with routes or waypoints from another 
 source, by default it will create "Red Flag" symbols for waypoints, and 
@@ -7,7 +7,7 @@ thick red lines for routes or tracks.  It is possible to merge two drawing
 layers by doing something like this:
 </para>
 
-<screen format="linespecific">gpsbabel -i an1 -f one.an1 -f two.an1 -o an1 -F merged.an1</screen>
+<para><userinput>gpsbabel -i an1 -f one.an1 -f two.an1 -o an1 -F merged.an1</userinput></para>
 
 <para> 
 In this case, the merged data will contain all of the
index a10c27ad1ab89a0e7e110f63549444a86c2600cb..4365cce2812a5cfe7037d85cd0ce4773f5c8aa67 100644 (file)
@@ -4,3 +4,11 @@ This format is used by GPSBabel itself as the input to the
 <link linkend="filter_polygon">polygon</link> filters.  See those filters
 for more information.
 </para>
+<para>
+The arc format reads two numeric fields, a latitude and a longitude, 
+in any format recognized as <link linkend="style_def_lathuman">human 
+readable</link> and writes as simple degrees decimal.  It really is
+intended for GPSBabel's own internal use more than general use, though
+it turns out to be a convenient way of expressing simple polylines and 
+polygons.
+</para>
index 918ce3c937cc55d15dce7d537f3db09838263b96..002a0aae7703a73baf9c96269acf4cf583157d76 100644 (file)
@@ -1,6 +1,6 @@
 <para>
  This format reads the binary (.gpb) track logs recorded on 
Dell Axim Navigation Systems. 
<ulink url="http://www.dell.com">Dell</ulink> Axim Navigation Systems. 
 </para>
 
 <para>
index 72c21e4adc0105c20e9a6ba6cf62b4c6637ddeda..cd3d8fd11c9caaed9c0b7f7c1ee776dcc392916d 100644 (file)
@@ -1,4 +1,4 @@
-<para>Serial download protocol for the Brauniger IQ series of
+<para>Serial download protocol for the <ulink url="http://www.brauniger.com">Brauniger</ulink> IQ series of
 barograph recording flight instruments.  This format creates a 
 track of altitude vs time which can be merged with a GPS track 
 of the same flight to create a three dimensional IGC file. </para>
index c5604099d73ed73beddfd5820c8d09be222cbbb5..76915df696b22cbc73936386cddd6fdd40b91c66 100644 (file)
@@ -16,6 +16,6 @@ reports are welcome.
 </para>
 <example id="sample_bcr_command">
   <title>Sample BCR command with all options</title>
-  <screen format="linespecific">gpsbabel -r -i gpx -f in.gpx -o bcr,index=1,name="From A to B",radius=6371012 -F a_to_b.bcr</screen>
+  <para><userinput>gpsbabel -r -i gpx -f in.gpx -o bcr,index=1,name="From A to B",radius=6371012 -F a_to_b.bcr</userinput></para>
 </example>
     
index b2cbda7acd0d0437167c4b3b93e5f89b3c17f3eb..5d8d79b9d29e663a85f129a6822691e84d4c4c23 100644 (file)
@@ -1,6 +1,8 @@
 
       
       
-      <para>Support for Cambridge/Winpilot flight analysis and planning software for
-       glider pilots.  </para>
+      <para>Support for 
+<ulink url="http://www.cambridge-aero.com/products.htm">Cambridge</ulink> 
+and <ulink url="http://www.winpilot.com"> Winpilot</ulink> 
+       flight analysis and planning software for glider pilots.  </para>
     
index 5049acaa3d6d38b6143f9ccaa3dbd0b34b65bd75..ef9031f23980cdf7ebd3702bfabdb7519575a4a8 100644 (file)
@@ -1,7 +1,7 @@
 
       
       
-      <para>Cetus GPS <ulink url="http://www.cetusgps.dk/">www.cetusgps.dk</ulink> is a program for
+      <para><ulink url="http://www.cetusgps.dk/">Cetus GPS</ulink> is a program for
 Palm/OS.  Working with Ron Parker and Kjeld Jensen, we can now read
 and write files for that program.</para>
     
index 066e29fcfb384d56ebc34a85803677398315511a..3356a9fff4c1c58d62d8e2733edf366d47ad1987 100644 (file)
@@ -1,7 +1,7 @@
 
       
       
-      <para>This is the format used by CoastalExplorer (tm). The
+      <para>This is the format used by <productname>CoastalExplorer</productname>. The
 format is XML with items uniquely identified by Windows-style UUIDs.
 <ulink url="http://www.rosepointnav.com">http://www.rosepointnav.com</ulink>
          </para>
index 354b783ea61b7b7a1a76bbbbb81d525b947bfee5..177a6a57ee76d3498321ac2d2d724dd243e8558e 100644 (file)
@@ -1,5 +1,5 @@
 <para>
-These data files are "character" separated text files like
+<productname>CompeGPS</productname> data files are "character" separated text files like
 the pcx format. "Character" means special data lines can have their
 own separator.
 </para>
index 3e0ae98f4f467dc8c3df599104f3475cd4f1aa90..6eb5272def8f6c74a3b74df3fbb9a0ff2424bf07 100644 (file)
@@ -1,10 +1,13 @@
 
       
       
-      <para> This code is mostly intended to convert CoPilot Flight
-Planner for Palmd/OS atabases into other formats.  You probably should
+      <para> This code is mostly intended to convert  <ulink url="http://xcski.com/~ptomblin/CoPilot/">CoPilot Flight
+Planner for Palm/OS"</ulink> databases into other formats.  You probably should
 not use this to write CoPilot databases, although the code is there,
 because GPSBabel doesn't convert magnetic declination values.</para>
+<para>This version now reads all CoPilot file versions up to 4, but only
+writes version 4 files.  If you have a need for a version flag, please let
+me know.</para>  
       <para> Questions, bug reports, etc, to ptomblin at
 xcski.com</para>
       <para>
index dfe6644fead911d20a0c22e4d936e363e6aa1d87..34d9a89d5d54427f265374b633d815930f674246 100644 (file)
@@ -1,5 +1,5 @@
 <para> 
-This format supports <productname>cotoGPS</productname>, a Palm GPS program. 
+This format supports <productname>cotoGPS</productname>, a <productname>Palm</productname> GPS program. 
 It can read both track and marker (waypoint) files. It is currently unable 
 to write track files, so only marker files can be written. The marker
 categories are written to and read from the icon description. The 'Not
index 4e8b3df4e5d48e479ed2c6090a9f596b04986842..aa1c0868f909d69f34146af72fa067cd319575b2 100644 (file)
@@ -1,9 +1,9 @@
 
       
       
-      <para> With this format we can read CarteSurTable data files.
-CarteSurTable is a shareware program widely used in France. The data
+      <para> With this format we can read  <ulink url="http://phgiraud.free.fr/CarteSurTable/CarteSurTable.htm">CarteSurTable</ulink> data files.
+ <ulink url="http://phgiraud.free.fr/CarteSurTable/CarteSurTable.htm">CarteSurTable</ulink> is a shareware program widely used in France. The data
 inside have to be seen as a mixture of a waypoints list, one route and
-several tracks.  <ulink url="http://phgiraud.free.fr/CarteSurTable/CarteSurTable.htm">phgiraud.free.fr</ulink>
+several tracks.  
          </para>
     
index 6b3fc6e7cb05d489a4403ec2e417f6585e764556..3b2e1112cad2852aac140154fcf1f9dc7df23c44 100644 (file)
@@ -2,11 +2,19 @@
       
       
       <para> There are a billion variants of Comma Separated Value
-data.  This is the one that makes Delorme S&amp;A Deluxe 9 happy. It's
+data.  This is the one that makes <ulink url="http://www.delorme.com">Delorme</ulink> <productname>S&amp;A Deluxe 9</productname> happy. It's
 also a very simple program and useful for many other programs like
 spreadsheets.</para>
-      <para> CSV is also the correct format for Lowrance MapCreate,
+      <para> CSV is also the correct format for 
+       <productname>Lowrance MapCreate</productname>,
 their commercial mapping program, or GDM6 (their free waypoint
 manager) for iFinder which is available at <ulink url="http://www.lowrance.com/Software/GDM6/Default.asp">lowrance.com</ulink>
          </para>
-    
+    <para>
+       On write, this format writes simple "latitude, longitude" pairs, but 
+on read it  will read anything supported by our <link linkend="style_def_lathuman">human readable</link> definition.
+    </para>
+    <para>
+       For something-separated data that has headers identifying the various
+       fields, see our <link linkend="fmt_unicsv">universal csv</link> format.
+    </para>
index 509a94c751f826e4d0e1ce850bb112d70dc4adca..3f940d3da95f050722ce1282a8db42f27f74b83a 100644 (file)
@@ -1,14 +1,11 @@
 
       
       
-      <para> This is the binary file format used by EasyGPS.  This
+      <para> This is the binary file format used by  <ulink url="http://www.easygps.com/">EasyGPS</ulink>
 format is seemingly being phased out in favor of GPX in newer versions
 of EasyGPS, but this allows conversions to and from the old binary
 .loc format.
 </para>
-      <para>
-            <ulink url="http://www.easygps.com/">http://www.easygps.com/</ulink>
-         </para>
       <para> Information about and sketchy code to implement this file
 format were provided by Eric Cloninger.
 </para>
index d507f2765a2dd7be47de1dc43f884acbc28d6c99..51b819f797b48ec8483b0d6294e395445c1ba7c9 100644 (file)
@@ -1,8 +1,8 @@
 
       
       
-      <para> This was a requested CSV format, *not* the proprietary
-binary format used by Fugawi. Like any other CSV format, GPSBabel
+      <para> This was a requested <link linkend="fmt_csv">CSV format</link>, and is <emphasis>not</emphasis> the proprietary
+binary format used by <ulink url="http://www.fugawi.com">Fugawi</ulink>. Like any other CSV format, GPSBabel
 cannot read tracks in this format, but converting a track into it and
 then importing as track in Fugawi works.</para>
       <para> It is known to work with Fugawi V3.1.4.635. When
index b72031f942b252c6e602c70b8124825e35cbcad7..93ba4180bdd5a67a5211d466cc15df9e628ab6d5 100644 (file)
@@ -10,8 +10,9 @@
 </para>
 
 <para> 
-       Supported models on USB include 
-       <simplelist columns="5">
+       Supported Garmin GPS receivers with USB include 
+       <simplelist columns="4">
+<member>Astro</member> 
 <member>Edge 205</member> 
 <member>Edge 305</member> 
 <member>eTrex Legend C</member> 
@@ -25,6 +26,7 @@
 <member>Forerunner 305</member>  
 <member>Foretrex 201</member>
 <member>Foretrex 301</member> 
+<member>GPS 18<footnote id="posnonly"><para>This model does not support transfer of waypoints, tracks, or routes, but may be used with the <link linkend="tracking">realtime tracking</link> feature.</para></footnote></member>
 <member>GPSMAP 195</member> 
 <member>GPSMAP 276C</member> 
 <member>GPSMAP 295</member> 
 <member>GPSMAP 76CX</member> 
 <member>GPSMAP 96</member> 
 <member>GPSMAP 96C</member> 
-<member>Nuvi 300<footnote id="gpx"><para>This unit uses GPX format, not Garmin protocol.  Therefore one should communicate with it by reading and writing GPX files instead of using this format.</para></footnote></member>
+<member>Nuvi 300<footnote id="gpx"><para>This unit uses GPX format, not Garmin protocol.  Therefore one should communicate with it by reading and writing GPX files instead of using this format.  Members of this class of products do not support realtime positioning protocol.</para></footnote></member>
 <member>Nuvi 310<footnoteref linkend="gpx"/></member>
 <member>Nuvi 350<footnoteref linkend="gpx"/></member>
-<member>Nuvi 360<footnoteref linkend="gpx"/></member>
+<member>Nuvi 370<footnoteref linkend="gpx"/></member>
+<member>Nuvi 660<footnoteref linkend="gpx"/></member>
+<member>Nuvi 670<footnoteref linkend="gpx"/></member>
+<member>Nuvi 680<footnoteref linkend="gpx"/></member>
 <member>Quest</member>
 <member>Quest II</member>
 <member>StreetPilot 2610</member> 
 <member>StreetPilot c510<footnoteref linkend="gpx"/></member>
 <member>StreetPilot c530<footnoteref linkend="gpx"/></member>
 <member>StreetPilot c550<footnoteref linkend="gpx"/></member>
+<member>StreetPilot c580<footnoteref linkend="gpx"/></member>
 <member>StreetPilot i2</member>
 <member>StreetPilot i3</member>
 <member>StreetPilot i5</member>
+<member>Zumo 450<footnoteref linkend="gpx"/></member>
+<member>Zumo 550<footnoteref linkend="gpx"/></member>
+</simplelist>
+</para>
+<para>the following Bluetooth Garmin products:
+<simplelist columns="4">
+<member>GPS 10<footnoteref linkend="posnonly"/></member>
 </simplelist>
 </para>
 
-<para>and most serial units including:
-<simplelist columns="5">
+<para>and most serial Garmin GPS receivers including:
+<simplelist columns="4">
 <member>eMap</member>
 <member>eTrex Camo</member>
 <member>eTrex Legend</member>
 </para>
 
 <para> 
-       To communicate with a unit serially, use the name of that
-       serial port such as "COM1" or  "/dev/cu.serial".  
+       To communicate with a Garmin GPS serially, use the name of that
+       serial port such as <filename>COM1</filename> or  <filename>/dev/cu.serial</filename>.  
 </para>
 <para>
-       To communicate via USB use "usb:" as the filename on all OSes.   
-       Thus, to read the waypoints from a Garmin USB unit and write 
+       To communicate via USB use <filename>usb:</filename> as the filename on all OSes.   
+       Thus, to read the waypoints from a Garmin USB receiver and write 
        them to a GPX file:
+</para>
 
-      <screen format="linespecific">gpsbabel -i garmin -f usb: -o gpx -F blah.gpx</screen>
+      <para><userinput>gpsbabel -i garmin -f usb: -o gpx -F blah.gpx</userinput></para>
 
-</para>
 <para>
        If you have multiple units attached via USB, you may provide 
        a unit number, with zero being the implied default.  So if you 
        have three USB models on your system, they can be addressed as 
-       "usb:0", "usb:1", and "usb:2".  To get a list of recognized devices,
+       <filename>usb:0</filename>, <filename>usb:1</filename>, and <filename>usb:2</filename>.  To get a list of recognized devices,
        specifiy a negative number such as:
 </para>
-       <screen format="linespecific">gpsbabel -i garmin -f usb:-1</screen>
+       <para><userinput>gpsbabel -i garmin -f usb:-1</userinput></para>
  
 <para> 
 When reporting problems with the Garmin format, be sure to include
 the full unit model, firmware version, and be prepared to offer
-debugging dumps by adding "-D9" to the command line, like:
+debugging dumps by adding <option>-D9</option> to the command line, like:
 </para>
 
-      <screen format="linespecific"> gpsbabel -D9 -i garmin -f usb: -o gpx -F blah.gpx</screen>
+      <para><userinput> gpsbabel -D9 -i garmin -f usb: -o gpx -F blah.gpx</userinput></para>
 
 <para> 
 Custom icons are supported on units that support that.
@@ -157,10 +170,15 @@ so they are named 'Custom 0' through 'Custom 511'.
        getty, pppd, etc.) is using the serial port.  
 </para>
 <para>
-       For models connected via USB, we recommend use of the 'usb:' 
+       For models connected via USB, we recommend use of the <filename>usb:</filename>
        filename.   For this to work on Windows, you must install
        the Garmin driver.  For Linux, this will fail if have the garmin_gps
        kernel module loaded.  
        See the <ulink url="/osnotes.html">Operating System Notes</ulink> for details.
 </para>
 
+<para>
+This module also supports <link linkend="tracking">realtime tracking</link> 
+which allows realtime position reports from a Garmin GPS receiver over USB
+or serial.  
+</para>
index 3887fe68165659daffacd39872f3296ca86734e7..f9c7d39fc7d6e77b47542ce408a911d2da7dc132 100644 (file)
@@ -1,7 +1,12 @@
 
       
        <para>This is a very simple format that
-is most useful for exporting data from a Garmin301 to other programs
+is most useful for exporting data from units that support heart rate
+data such as
+<productname>Garmin Forerunner 301</productname>,
+<productname>Garmin Forerunner 305</productname>, and
+<productname>Garmin Edge 305</productname>, and
+to other programs
 for analysis.   It's a simple comma delimited format that includes the
 timestamp, 3D position information and heart rate so you can pull it
 into a spreadsheet or graphing program. </para>
index 868a97540851cb9144d52d1af9c3edeb65cee146..b9a9c88d18229cbfeb320af4e459ca5bd29b3127 100644 (file)
@@ -1,23 +1,23 @@
 <para>
 This is a textual format that contains nearly all of the information 
-contained in the MapSource main format, <link linkend="fmt_gdb">GDB</link>.
+contained in the <productname>MapSource</productname> main format, <link linkend="fmt_gdb">GDB</link>.
 This format also contains some computed values such as distances between 
 routepoints and trackpoints, speed, and course (heading).
 </para>
 <para>
 The main goal of garmin_txt is to make aviation data more available. Because 
-MapSource supports only the export, GPSBabel gives you the possibility to 
-bring aviation data into MapSource.
+<productname>MapSource</productname> supports only the export, GPSBabel gives you the possibility to 
+bring aviation data into <productname>MapSource</productname>.
 </para>
 <para>
-During the export with MapSource, some fields are written using local settings
-of MapSource and Windows. These include grid format, gps datum, distance and
+During the export with <productname>MapSource</productname>, some fields are written using local settings
+of <productname>MapSource</productname> and Windows. These include grid format, gps datum, distance and
 temperature units, and the representation of date and time fields. GPSBabel 
 tries to read all items automatically. Problems with date and time format can 
 be solved with the 'date' and 'time' options.
 </para>
 <example id="all_garmin_txt_options">
   <title>Command showing garmin_txt output with all options</title>
-  <screen format="linespecific">gpsbabel -i garmin_txt,date="MM/DD/YYYY",time="hh:mm:ss xx" -f in.txt -o garmin_txt,date="DD.MM.YYYY",datum="WGS 72",dist=m,prec=6,temp=c,time="HH:mm:ss",utc=+2 -F out.txt</screen>
+  <para><userinput>gpsbabel -i garmin_txt,date="MM/DD/YYYY",time="hh:mm:ss xx" -f in.txt -o garmin_txt,date="DD.MM.YYYY",datum="WGS 72",dist=m,prec=6,temp=c,time="HH:mm:ss",utc=+2 -F out.txt</userinput></para>
 </example>
     
index c01e0c7211eb087cd6cc0c744295882591f3bd00..d9e1d4d53ef0eae98464f724b2b54b8ed355fdc7 100644 (file)
@@ -1,7 +1,7 @@
-
       
-      
-      <para>This is the GeocachingDB by DougsBrat.  It works with v2
-and v3 of this program. See <ulink url="http://vip.hyperusa.com/~dougs/geocachingdb/geocachingdb.htm">vip.hyperusa.com</ulink>
+      <para>This is format for the 
+<ulink url="http://vip.hyperusa.com/~dougs/geocachingdb/geocachingdb.htm">
+GeocachingDB</ulink> program by DougsBrat.  It works with v2
+and v3 of this program. 
          </para>
     
index eb25c0b8b16de692b165fdaf16eaba9d134510cd..80788965ecd3119365ff7dcba54746b9a8488a98 100644 (file)
@@ -1,6 +1,7 @@
 <para> 
 Support for the "Garmin GPS Database" format used by
-default in MapSource versions since release 6.0. By default GPSBabel creates
+default in <productname>MapSource</productname> versions since release 6.0 of 
+that product. By default GPSBabel creates
 gdb files of version 2.  Version 2 is used in Mapsource 6.3 and 6.5.
 </para>
 <para> 
index 7cd659e09d84eaad0d804f913da0eb17c417be75..42c1b22a1bb335cb4cc594e93c68747204ecc642 100644 (file)
@@ -1,5 +1,5 @@
 <para>
-This format supports the Geocaching.com/EasyGPS ".loc" format.  This format
+This format supports the <ulink  url="http://www.geocaching.com">Geocaching.com</ulink>/<ulink url="http://www.easygps.com">EasyGPS</ulink> ".loc" format.  This format
 was created specifically for Geocaching.com and is not the same as the 
 standard EasyGPS .loc format.  See the <link linkend="fmt_easygps">EasyGPS</link> 
 or <link linkend="fmt_gpx">GPX</link> formats for more general EasyGPS support.
index 8ace298c372c3b63b3ac3b87d5493a4a7aab7351..9b6d9c97ed7ec922c77493562048fcabe9e2db9b 100644 (file)
@@ -1,8 +1,7 @@
 
       
       
-      <para>Geoniche is a Palm/OS application oriented for the
-off-road user.  This module was contributed by Rick Richardson.  See
-<ulink url="http://www.nwlink.com/~raydar/GeoNiche/">nwlink.com</ulink>
+      <para><ulink url="http://www.raydarllc.com/">Geoniche</ulink> is a Palm/OS application oriented for the
+off-road user.  This module was contributed by Rick Richardson.  
          </para>
     
index c79db28f675e566be6a1f7ce8b1ea3328d78ce9d..bbaa7b02bdef289c0ffbfc3ff220ce6c1b561de2 100644 (file)
@@ -2,6 +2,10 @@
       
       
       <para>This is the XML format used by the Garmin Logbook product
-that ships with Forerunner and Foretrex.  <ulink url="http://www.garmin.com">http://www.garmin.com</ulink>
+that ships with Forerunner and Foretrex.  
+As of early 2006, this program is apparently  been discontinued in favor of
+<link  linkend="fmt_gtrnctr">Garmin Training Center</link>.
+
+See: <ulink url="http://www.garmin.com">http://www.garmin.com</ulink>  
          </para>
     
index f564951aeb5f4ccfd4fa589b48e40b93c7016b0e..d458c7cb1ffb213be2a510d23600ca09843f4d8a 100644 (file)
@@ -2,7 +2,7 @@
       
       
       <para> This format is designed to read the XML emitted when you
-tack "&amp;output=js" onto the end of a Google Maps route URL (use
+tack "&amp;output=js" onto the end of a <ulink url="http://www.maps.google.com>Google Maps">Google Maps</ulink>route URL (use
 the "link to this page" option to get a usable URL.)  This allows you
 to plan a route using Google Maps, then download it and use it in your
 own mapping program or GPS receiver.   To get a file suitable for use
index c3c9dd4509d2bbdb0d56b16a47ab8546d0e5d65a..ffb947cdd92073e25a44eed248e008f22c90b87b 100644 (file)
@@ -1,12 +1,10 @@
 
       
       
-      <para> This is a Palm/OS file format for GPilotS.  It was tested
-against version 6.2.
+      <para> This is a Palm/OS file format for 
+            <ulink url="http://www.cru.fr/perso/cc/GPilotS/">GPilotS</ulink>.
+       It was tested against version 6.2 of GPilotsS
 </para>
-      <para>
-            <ulink url="http://www.cru.fr/perso/cc/GPilotS/">http://www.cru.fr/perso/cc/GPilotS/</ulink>
-         </para>
       <para> Neither tracks nor routes are supported at this
 time.</para>
     
index 52f2f9237970e69cb1bbef8dd85ac4134fe2f7e5..d39bd8d790988ca01386d1f4aa68ab758a8c6842 100644 (file)
@@ -1,8 +1,12 @@
 
       
       
-      <para>GPSUtil has a simple file format of this program that runs
+      <para>The format we call <ulink url="http://www.cs.uakron.edu/~hennings/gpsutil">gpsutil</ulink> is a simple file format used by a program that runs
 on POSIX- compliant OSes like UNIX and Linux.  Reads and writes of
-this format are reliable.  (I've also contributed to this program.)
-It's available at <ulink url="http://www.cs.uakron.edu/~hennings/gpsutil">cs.uakron.edu</ulink>.</para>
+this format are very reliable.  (<ulink url="/people/robertlipe.html">The lead
+developer of GPSBabel</ulink> also contributed to this that 'gpsutil' 
+the early days.)</para>
+<para>
+       Note that 'gpsutil' is a different format - and program - than the one called <ulink url="http://www.gpsu.co.uk/index.html">GPS Utility</ulink>; for that one, you should probably use our  <link linkend="fmt_pcx">PCX module</link>.
+</para>
     
index 1af5de8d923e1a6d0db72a763088c607bd394cc0..9f68c0ae2e7c9bd6bbaf10d6cc24aa12f87babfa 100644 (file)
@@ -6,4 +6,9 @@ formats supplied.  It is described at <ulink url="http://www.topografix.com/gpx.
 supported by EasyGPS, ExpertGPS, and many other programs described at
 <ulink url="http://www.topografix.com/gpx_resources.asp">topografix.com</ulink>
          </para>
+       <para>
+       GPSBabel's reader of this module attempts to preserve tags it doesn't
+       really understand.   It also tries to glean interesting data from
+       <ulink url="http://www.geocaching.com">pocket queries from Geocaching.com</ulink>.
+       </para>
     
index f59087135509bccc58de9da114f26b3ee11448d6..34c59528d7c4a915c95bcda217fc979eee0750c2 100644 (file)
@@ -1,6 +1,5 @@
 <para>
-Garmin Training Center is the successor to Garmin' Logbook program
-for their workout units.  It is a free upgrade.
+GPSBabel has limited support for Garmin Training Center files.   That program is the successor to Garmin' Logbook program for their workout units.  It is a free upgrade.
 </para>
 <para>
 This format is somewhat underachieving in GPSBabel.  It is a write-only
index be227fb38912aba2640d86c009cffe0a3cadc838..8524b14838ec640a80ec4bc1d6d0b20e93a814e1 100644 (file)
@@ -1,7 +1,7 @@
 
       
       
-      <para> The Holuxgm-100 (e-fox) gps receiver uses standard
+      <para> The Holux gm-100 (e-fox) gps receiver uses standard
 compact flash cards.  File formats were provided by Holux-Taiwan
 <ulink url="http://www.holux.com.tw">holux.com</ulink> to the author.
 The code was tested against version 2.27E1; other versions and
index da0de56a749df22fcf3f34a845f2388b820bd644..211da87ff0a91e17e16653ed091cbc713ad17be8 100644 (file)
@@ -1,11 +1,16 @@
-      <para> HTML output generates a single HTML file of all of the
+      <para> GPSBabel's HTML output generates a single HTML file of all of the
 waypoints in the input file.  It supports a number of Groundspeak GPX
-extensions, as well as filters out potentially harmful HTML from the
-input file while maintaining almost all of the source HTML formatting.
+extensions and filters out potentially harmful HTML from the
+input file while maintaining almost all of the source HTML formatting.   
+This makes this format well suited for generating HTML to hand to programs
+like Plucker for putting in a PDA and especially so for "paperless caching"
+for Geocachers with pocket queries.
+</para>
+<para>This format is similar to the <link linkend="fmt_text">text</link> format.
 </para>
       <para> The following command line reads a GPX file with
 Groundspeak extensions and writes an HTML file with encrypted hints
 that is rendered using a custom stylesheet:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f 12345.gpx -o html,stylesheet=green.css,encrypt -F 12345.html</screen>
+<para><userinput>gpsbabel -i gpx -f 12345.gpx -o html,stylesheet=green.css,encrypt -F 12345.html</userinput></para>
     
index 0c1485b6e2b753c5ef44c571063a60a696aed871..57e330b133b7a9095435679e06eb509a31a38967 100644 (file)
@@ -42,7 +42,7 @@ will not be accepted as proof of a flight.
 A track stored in another format (GPX for example) representing a recorded
 flight can be converted into an IGC file:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f mytrk.gpx -o igc -F myflight.igc</screen>
+<para><userinput>gpsbabel -i gpx -f mytrk.gpx -o igc -F myflight.igc</userinput></para>
 <para>
 If multiple track segments are provided in the input file, the one with the
 most points will be used.
@@ -51,34 +51,34 @@ most points will be used.
 A route stored in another format representing a task declaration can be
 converted into an IGC file:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f myrte.gpx -o igc -F mytask.igc</screen>
+<para><userinput>gpsbabel -i gpx -f myrte.gpx -o igc -F mytask.igc</userinput></para>
 <para>
 A route and a track in other formats can be included into a single IGC file:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -o igc -F myflight.igc</screen>
+<para><userinput>gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -o igc -F myflight.igc</userinput></para>
 <para>
 A similar result can be obtained by downloading the track log and routes
 directly from a GPS device connected to a PC.  For example to create an IGC
 file from data recorded in a Garmin GPS connected to the first serial port of
 a PC running Linux:
 </para>
-<screen format="linespecific">gpsbabel -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</screen>
+<para><userinput>gpsbabel -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</userinput></para>
 <para>
 For Windows operating systems:
 </para>
-<screen format="linespecific">gpsbabel -t -r -i garmin -f com1 -o igc -F myflight.igc</screen>
+<para><userinput>gpsbabel -t -r -i garmin -f com1 -o igc -F myflight.igc</userinput></para>
 <para>
 A waypoint file in another format containing a waypoint whose short name is
 "PILOT" can be merged into an IGC file.  The description field of the waypoint
 will be used for the pilot name in the IGC file header:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -f mywpt.gpx -o igc -F myflight.igc
-gpsbabel -w -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</screen>
+<para><userinput>gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -f mywpt.gpx -o igc -F myflight.igc
+gpsbabel -w -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc</userinput></para>
 <para>
 Some formats such as GPX allow routes, tracks and waypoints to exist in the
 same file and can be used to fully populate an IGC file:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f myall.gpx -o igc -F myflight.igc</screen>
+<para><userinput>gpsbabel -i gpx -f myall.gpx -o igc -F myflight.igc</userinput></para>
 </section>
 
 <section id="fmt_igc_convfrom">
@@ -88,11 +88,11 @@ Data in an IGC file can be converted into other formats.  For example to
 generate OziExplorer files containing tracks representing the recorded
 flight (myozi.plt) and routes representing declared tasks (myozi.rte):
 </para>
-<screen format="linespecific">gpsbabel -i igc -f myflight.igc -o ozi -F myozi</screen>
+<para><userinput>gpsbabel -i igc -f myflight.igc -o ozi -F myozi</userinput></para>
 <para>
 Or to GPX format:
 </para>
-<screen format="linespecific">gpsbabel -i igc -f myflight.igc -o gpx -F myflight.gpx</screen>
+<para><userinput>gpsbabel -i igc -f myflight.igc -o gpx -F myflight.gpx</userinput></para>
 <para>
 Header information from the IGC file will be written to the description field
 of the track(s).
@@ -110,23 +110,23 @@ tracks.  The latitude, longitude and timestamps in the tracks will be identical.
 A route stored in another format can be merged with an existing IGC file that
 has no task declaration, to generate a new IGC file with a task declaration:
 </para>
-<screen format="linespecific">gpsbabel -i igc -f myflight.igc -i gpx -f myrte.gpx -o igc -F mynew.igc</screen>
+<para><userinput>gpsbabel -i igc -f myflight.igc -i gpx -f myrte.gpx -o igc -F mynew.igc</userinput></para>
 <para>
 A two dimensional (lat/lon) track recorded during a flight by a GPS receiver
 can be merged with a one dimensional (altitude) track recorded during the same
 flight by a barograph instrument.  The result is a three dimensional IGC file
 representing the flight:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc -F my3D.igc</screen>
+<para><userinput>gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc -F my3D.igc</userinput></para>
 <para>
 The same can be acheived by downloading directly from a barograph instrument
 supported by GPSBabel.  For example with a Brauniger IQ Comp GPS variometer:
 </para>
-<screen format="linespecific">gpsbabel -i baroiq -f /dev/ttyS0 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</screen>
+<para><userinput>gpsbabel -i baroiq -f /dev/ttyS0 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</userinput></para>
 <para>
 or:
 </para>
-<screen format="linespecific">gpsbabel -i baroiq -f com1 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</screen>
+<para><userinput>gpsbabel -i baroiq -f com1 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</userinput></para>
 <para>
 (Documentation contributed by Chris Jones, Aug 2004)
 </para>
index a77c7238c75e1ed5cc2f850ac16ae46a52716481..b35632ba021dca0178cc2f098bd15ca2b285c9f9 100644 (file)
@@ -1,6 +1,6 @@
 <para> 
 KML, the Keyhole Markup Language, is used by Keyhole and
-Google Earth.  There are features in this file format that GPSBabel
+<ulink url="http://earth.google.com">Google Earth</ulink>.  There are features in this file format that GPSBabel
 doesn't support - such as camera views - but waypoints, tracks, and routes 
 work well.
 </para>
diff --git a/xmldoc/formats/kompass_tk.xml b/xmldoc/formats/kompass_tk.xml
new file mode 100644 (file)
index 0000000..6b49141
--- /dev/null
@@ -0,0 +1,8 @@
+<para>
+  This module supports track files used by Kompass and DAV "Deutscher Alpenverein".
+</para>
+<para>
+  <ulink url="http://www.kompass.at">Kompass</ulink> is a publishing company from Austria.
+  If you want to get more information about DAV, the German alpine association, 
+  and if you are familiar with the german language, please have a look at their <ulink url="http://www.alpenverein.de">homepage</ulink>.
+</para>
diff --git a/xmldoc/formats/kompass_wp.xml b/xmldoc/formats/kompass_wp.xml
new file mode 100644 (file)
index 0000000..6ef21cc
--- /dev/null
@@ -0,0 +1,7 @@
+<para>
+  This module supports waypoint files used by Kompass and DAV "Deutscher Alpenverein".
+</para>
+<para>
+  Some more information under <link linkend="fmt_kompass_tk">kompass_tk</link> format.
+</para>
+
index 79a34410a2373b707544908309b60d4dfa9c5a4d..f2383eb912013acd08ce4cc9a162d5b120743bd7 100644 (file)
@@ -1,5 +1,5 @@
 <para> 
-The Lowrance iFinder GPS series has the unique capability
+The <ulink url="http://www.lowrance.com">Lowrance iFinder GPS</ulink> series has the unique capability
 to output its data to an MMC card.  The data is saved to the card as a
 .USR file and can be read by your computer using a card reader.
 Waypoints, routes, tracks are supported.  By default, Event marker
index bc671532edba8c2023f2945772a6e01ba6f419d7..7cb28f1498539f4fcfe2996b2e915bc86c2b86be 100644 (file)
@@ -1,4 +1,4 @@
-<para>GPSBabel supports the following Magellan receivers:
+<para>GPSBabel supports the following <ulink url="http://www.magellangps.com">Magellan</ulink> receivers:
 <simplelist columns="2">
        <member>310</member>
        <member>315</member>
@@ -27,7 +27,8 @@
        This format is used for both the serial protocol used on the
        devices with serial ports such as Map330 and Meridian and for
        the files stored either in either the unit's internal memory 
-       (Explorist 210, 400, 500, 600, XL) or on removable memory.
+       (Explorist 210, Explorist 400, Explorist 500, Explorist 600, 
+       Explorist XL) or on removable memory.
 </para> 
 <para>
        If you specify a serial port for the file (.e.g. "COM1", "/dev/ttyS0")
index 2ee5fbf239b28c865564aeb327168c68f22297fc..b86c1904b6c3dde7abb0537c334e7d5e3ab0164f 100644 (file)
@@ -1,4 +1,4 @@
-<para>GPSBabel supports the following Magellan receivers:
+<para>GPSBabel supports the following <ulink url="http://www.magellangps.com">Magellan</ulink> receivers:
 <simplelist columns="2">
        <member>310</member>
        <member>315</member>
@@ -36,5 +36,11 @@ The RoadMate family of products is not supported.
        If you specify a serial port for the file (.e.g. "COM1", "/dev/ttyS0")
        to be read or written, GPSBabel will use serial protocol.   Specifying
        a file, either on local filesystem or on a mounted flash card reader,
-       will results in the file-based format being used.
+       will result in the file-based format being used.
+</para>
+<para>
+       Users of the Explorist generation of receivers should probably
+       prefer to use the <link linkend="fmt_magellan">magellanx</link>
+       format over this one.
+
 </para>
index be4fa14a9387e2dc4380e2234e53c29b96c082bc..ffb219fb54b6f6a19794897fe23c28d443d1a122 100644 (file)
@@ -1,8 +1,8 @@
 <para>
-       This is the SD card format used by the Magellan Explorist 400,
-       500, 600, and XL and internally on those devices plus the 
-       Explorist 210.  Waypoints are identical to the Magellan SD format 
-       used by Meridian, but allows longer waypoint names.  Routes are 
+       This is the SD card format used by the <ulink url="http://www.magellangps.com">Magellan</ulink> Explorist 400,
+       Explorist 500, Explorist 600, and Explorist XL and internally on those devices plus the 
+       Explorist 210.  Stored waypoints are identical to the <link linkend="fmt_magellan">Magellan SD format</link>
+       used by Meridian, but the newer models allow longer waypoint names.  Routes are 
        subtly different.
 </para>
 <para>         
index 506567d13a19a02f09d2247ec6ace1afe3538b00..43aa3c392a08f9296f5fb24b6f685bb3792b59e8 100644 (file)
@@ -1,8 +1,9 @@
 
       
       
-      <para> The SD card format used by the Magellan Explorist 400,
-500, and 600 to describe geocaches.  Notice what while the format can
+      <para> This format support the on-card format used by the <ulink url="http://www.magellangps.com">Magellan</ulink> Explorist 400,
+Explorist 500, Explorist 600, Explorist 210, and Explorist XL 
+to describe geocaches.  Notice what while the format can
 hold an infinite number of geocaches, the unit will read and silently
 discard all but 200 geocache POIs at a time.</para>
       <para> You should name any file created with this format with a
index a06a0490ef2ee70e95b653f79a9f55a246ef687d..76511170529b0384f55065e65e63a28cb55a9e56 100644 (file)
@@ -1,5 +1,5 @@
 <para>
-Magellan NAV Companion for Palm/OS is not really designed
+<ulink url="http://www.magellangs.com">Magellan</ulink> NAV Companion for Palm/OS is not really designed
 for this sort of use, but its file format is supported and with a
 little bit of patience you can both read and write NAV Companion
 waypoints.  This conversion is based on
@@ -27,7 +27,7 @@ PalmOS, not of NAV Companion.)
 <para>
 To merge the databases, use a command line like the following:
 </para>
-<screen format="linespecific">gpsbabel -i magnav -f Companion_Waypoints.PDB -i geo -f geocaching.loc -o magnav -F merged.pdb</screen>
+<para><userinput>gpsbabel -i magnav -f Companion_Waypoints.PDB -i geo -f geocaching.loc -o magnav -F merged.pdb</userinput></para>
 <para>
 Second, you must use the installer to install your new PDB file.  Don't
 make the mistake of copying it over the existing Companion_Waypoints.PDB
index 1ab390cea0c682a87637e5466396cce16d21f906..3c9fa9dabd3e0a6b8ee007d36655ed24126af5a8 100644 (file)
@@ -14,7 +14,7 @@ The steps for using GPSBabel and Mapconverter go something like this:
 <para>
 Step 1: Create a mapconverter file using gpsbabel.
 </para>
-<screen format="linespecific">gpsbabel -i geo -f geocaching.loc -o mapconverter -F foo.txt</screen>
+<para><userinput>gpsbabel -i geo -f geocaching.loc -o mapconverter -F foo.txt</userinput></para>
 <para>
 Step 2: Launch mapconverter.exe and choose foo.txt as your input file.
        Click the begin button to have mapconverter process foo.txt.
index 0dc62d68467f598a287dbfc9312f4f7057f0d132..a33cdc3bca97f7f02e25e8dd44e79d292c647757 100644 (file)
@@ -1,5 +1,5 @@
 <para>
-This format supports the Magellan <productname>MapSend</productname> native
+This format supports the <ulink url="http://www.magellangps.com">Magellan</ulink> <productname>MapSend</productname> native
 file format.
 </para>
 <para>
index 955f55e4c0b1b5480824acc9f024fc5e28211321..590155956ffcc0afae9f65a208e717f5ae90b354 100644 (file)
@@ -31,6 +31,23 @@ that work with NMEA-0183 formatted data include:
   <ulink url="http://www.commlinx.com.au/GPS_recorder.htm">CommLinx GPS recorder</ulink>
 </member>
 <member>
-  <ulink url="http://www.sparkfun.com/commerce/product_info.php?products_id=671">SparkFun GPS Datalogger</ulink>
+  <ulink url="http://www.sparkfun.com/">SparkFun GPS Datalogger</ulink>
+</member>
+<member>
+  <ulink url="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_DisplayProductInformation-Start?ProductSKU=GPSCS1">Sony GPS-CS1</ulink>
 </member>
 </simplelist>  
+<para>
+This module also supports <link linkend="tracking">realtime tracking</link> 
+which allows realtime position reports from a GPS, such as one connected 
+serially, over Bluetooth, or a USB module emulating a serial port, to be used
+with selected output formats.
+</para>
+<para>
+When used in <link linkend="tracking">realtime tracking</link> mode, if
+GPSBabel does not sense incoming NMEA sentences arriving from the port, it
+will send Sirf "reset to NMEA" commands to the port at a variety of speeds
+in an attempt to communicate with an attached GPS.   This lets devices
+like the Microsoft GPS or Pharos GPS that are Sirf chips with an integrated
+USB/Serial adapter work with this input format.
+</para>
index 03f35131a79dc22a3684f67970f113adba026950..56d50f1c01614d57533a37ff6e6d057cb91e273c 100644 (file)
@@ -5,7 +5,7 @@
 format.  Intended to serve as source for number-processing
 applications like OpenOffice, Ploticus and others. Tab was chosen as
 delimiter because it is a) supported by both OpenOffice and Ploticus
-and b) is not ',', so you can use <command moreinfo="none">sed -i
-"s/./,/g" &lt;x&gt;.csv'</command> to adapt it to locales where ',' is
+and b) is not ',', so you can use <userinput moreinfo="none">sed -i
+"s/./,/g" &lt;x&gt;.csv'</userinput> to adapt it to locales where ',' is
 used as decimal seperator.  Contributed by Tobias Minich.</para>
     
index bdeb9dc1baf5af4ad902273bad3522e1d190d8ad..2dfa4c589384d3d545b5bf8210b8461df0354224 100644 (file)
@@ -4,5 +4,5 @@ difficulty and terrain, GPSBabel will automatically include that information
 in the waypoint descriptions in the generated drawing file.  If you do not 
 want that, specify the "nogc" option on the command line:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f 12345.gpx -o an1,nogc -F 12345.an1</screen>
+<para><userinput>gpsbabel -i gpx -f 12345.gpx -o an1,nogc -F 12345.an1</userinput></para>
 
index f71a23181b9d3954886af868f956af37ac6d1430..1c32d7e71b8710579437bea76fd9621346a33331 100644 (file)
@@ -59,7 +59,7 @@ local roads, but may be edited with the drawing tools in Street Atlas.
 This option has a special format that is best demonstrated by example:
 </para>
 
-<screen format="linespecific">"road=I-599!limited!Beecher St.!major" </screen>
+<screen format="linespecific"> "road=I-599!limited!Beecher St.!major" </screen>
 
 <para>
 This option will cause any road named "I-599" to become a limited-access 
index 2d981b38b292e3b06cdef938a76c60c998cf0437..2e960277da67e62116fff519b7ca1b5075c2fc74 100644 (file)
@@ -5,5 +5,5 @@ routes read from a more expressive format.  If you have, say, a
 <link linkend="fmt_gpx">gpx</link> file that contains two routes, you may
 use this option to write them one at a time to individual files.
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f routes.gpx -o bcr,index=1 -F route1.bcr -o bcr,index=2 -F route2.bcr</screen>
+<para><userinput>gpsbabel -i gpx -f routes.gpx -o bcr,index=1 -F route1.bcr -o bcr,index=2 -F route2.bcr</userinput></para>
 
diff --git a/xmldoc/formats/options/bcr-prefer_shortnames.xml b/xmldoc/formats/options/bcr-prefer_shortnames.xml
new file mode 100644 (file)
index 0000000..2674f59
--- /dev/null
@@ -0,0 +1,4 @@
+<para>
+This option causes GPSBabel to use the short name of the waypoint instead
+of the description.
+</para>
index dfccba67e4b18fdef6abdf5691441ba762a99e86..b82e931dd914f6715da4f6355d58022db9dd9c04 100644 (file)
@@ -5,4 +5,4 @@ tracks read from a more expressive format.  If you have, say, a
 <link linkend="fmt_gpx">gpx</link> file that contains two routes, you may
 use this option to write them one at a time to individual files.
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f routes.gpx -o compegps,index=1 -F route1.txt -o compegps,index=2 -F route2.txt</screen>
+<para><userinput>gpsbabel -i gpx -f routes.gpx -o compegps,index=1 -F route1.txt -o compegps,index=2 -F route2.txt</userinput></para>
index a7720047c4c7524550967af0855086f82d550cc5..b7baac3b6251d216d597311f79988ba7b71a8aa7 100644 (file)
@@ -1,5 +1,5 @@
 <para>This options gets the current longtitude and latitude from the attached GPS device
 and returns it as a single waypoint for further processing.  For example,
 to return the current position from a USB Garmin to a KML file:
-<screen format="linespecific">gpsbabel -i garmin,get_posn -f usb: -o kml -F myposition.kml</screen>
 </para>
+<para><userinput>gpsbabel -i garmin,get_posn -f usb: -o kml -F myposition.kml</userinput></para>
index 63c22850d02fad929b38b218a65705a3a8de7005..0c1b945fc6179d201a12a64ec335b1287b5b4eda 100644 (file)
@@ -4,5 +4,5 @@ Obviously, further processing once you have sent a "power off" command to
 a unit that supports it is rather futile, so place this option carefully
 in your command.
 
-<screen format="linespecific">gpsbabel -o garmin,power_off -F /dev/ttyS0</screen>
 </para>
+<para><userinput>gpsbabel -o garmin,power_off -F /dev/ttyS0</userinput></para>
diff --git a/xmldoc/formats/options/garmin_txt-grid.xml b/xmldoc/formats/options/garmin_txt-grid.xml
new file mode 100644 (file)
index 0000000..a0e9486
--- /dev/null
@@ -0,0 +1,50 @@
+<para>
+  This value specifies the grid to be used on write.
+</para>
+<table id="garmin_grid">
+<title>Grid values for garmin_txt</title>
+<tgroup cols="4">
+<thead>
+<row>
+ <entry># idx</entry> 
+ <entry>short</entry> 
+ <entry>file-header</entry> 
+ <entry>sample</entry>
+</row>
+</thead>
+<tbody>
+<row>
+  <entry>0</entry>
+  <entry>ddd</entry>
+  <entry>Lat/Lon hddd.ddddd</entry>
+  <entry>    S26.25333 E27.92333</entry>
+</row>
+<row>
+  <entry>1</entry>
+  <entry>dm</entry>
+  <entry>Lat/Lon hddd°mm.mm</entry>
+  <entry>N33 56.539 W118 24.471</entry>
+</row>
+<row>
+  <entry>2</entry>
+  <entry>dm</entry>
+  <entry>Lat/Lon hddd°mm'ss.s</entry>
+  <entry>S25 25 26.8 E28 06 07.3</entry>
+</row>
+<row>
+  <entry>3</entry>
+  <entry>bng</entry>
+  <entry>British National Grid</entry>
+  <entry>TQ 18919 69392</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+
+
+<para>
+  Idx or short are valid params for this option.
+</para>
+
+
index 2d6def3c86f95e38c5992778762b3646ceef3b26..eb345d9b8209fdedbc70e10dec8e2b7b33f8b4a4 100644 (file)
@@ -5,12 +5,12 @@ not correlating correctly.  This can be corrected manually by passing the time
 difference in seconds between the two time domains through the "timeadj"
 parameter.  This can be any positive or negative integer:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=27 -F my3D.igc</screen>
+<para><userinput>gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=27 -F my3D.igc</userinput></para>
 <para>
 GPSBabel can also attempt to deduce the time difference automatically.  This
 is done by comparing the time that it thinks that you landed on the GPS track
 and the barograph and adjusting accordingly:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</screen>
+<para><userinput>gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc</userinput></para>
 
 
index 42c8f4e6fcb3bf6fbff1f5922ac8ef8e9754c6a3..f61f0e79095f9ba5e6fc8253ecafd68ae99c0a62 100644 (file)
@@ -5,5 +5,5 @@ tracks read from a more expressive format.  If you have, say, a
 <link linkend="fmt_gpx">gpx</link> file that contains two tracks, you may
 use this option to write them one at a time to individual files.
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f tracks.gpx -o ignrando,index=1 -F track1.txt -o ignrando,index=2 -F track2.txt</screen>
+<para><userinput>gpsbabel -i gpx -f tracks.gpx -o ignrando,index=1 -F track1.txt -o ignrando,index=2 -F track2.txt</userinput></para>
 
index 8b7f0c4f0a995cc32eace37795db766fa17d81f5..e5fa3f10358e1b7b0121645c7b65487665fcf171 100644 (file)
@@ -5,5 +5,5 @@ routes read from a more expressive format.  If you have, say, a
 <link linkend="fmt_gpx">gpx</link> file that contains two routes, you may
 use this option to write them one at a time to individual files.
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f routes.gpx -o nmn4,index=1 -F route1.rte -o nmn4,index=2 -F route2.rte</screen>
+<para><userinput>gpsbabel -i gpx -f routes.gpx -o nmn4,index=1 -F route1.rte -o nmn4,index=2 -F route2.rte</userinput></para>
 
index 301d55b1fecc826f303c98e99d08c336fa0c5cac..f42f1c99e01f072461abaab57d85ad240c6c48ea 100644 (file)
@@ -11,7 +11,5 @@
 </para>
 <para>
        This example will convert route number two and three into separate sdf files:
-       <screen format="linespecific">
-               gpsbabel -i gdb -f routes.gdb -r -o stmsdf,index=2 -F route-one.sdf -r -o stmsdf,index=3 -F route-three.sdf
-       </screen>
 </para>
+       <para><userinput> gpsbabel -i gdb -f routes.gdb -r -o stmsdf,index=2 -F route-one.sdf -r -o stmsdf,index=3 -F route-three.sdf </userinput></para>
index 6187a66a8d663255773a0b54a878dbd145eb0e9d..c43659c2f5380ccde536ab1ba2ef8974152f46de 100644 (file)
@@ -5,5 +5,5 @@ tracks read from a more expressive format.  If you have, say, a
 <link linkend="fmt_gpx">gpx</link> file that contains three routes, you may
 use this option to write them one at a time to individual files.
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f routes.gpx -o stmwpp,index=1 -F route1.txt -o stmwpp,index=2 -F route2.txt -o stmwpp,index=3 -F route3.txt</screen>
+<para><userinput>gpsbabel -i gpx -f routes.gpx -o stmwpp,index=1 -F route1.txt -o stmwpp,index=2 -F route2.txt -o stmwpp,index=3 -F route3.txt</userinput></para>
 
index d1bd24f2b6fc8015f4a04aa3b0ac467d1c6acfae..03ebc6d99d09420af8e9794d6b066ce32c4c0768 100644 (file)
@@ -5,10 +5,12 @@ height, and width parameters in a form suitable for use in the URL to generate
 a map that will hold all the points to be displayed  and is suitably scaled
 and centered.   
 </para>
-<para>For example:
-<screen format="linespecific">gpsbabel -i geo -f geocaching.loc -o tiger,genurl=tiger.ctr -F tiger.dat</screen>
+<para>For example:</para>
+<para><userinput>gpsbabel -i geo -f geocaching.loc -o tiger,genurl=tiger.ctr -F tiger.dat</userinput></para>
+<para>
 may create tiger.ctr with
-<screen format="linespecific">lat=36.042108&amp;lon=-86.877408&amp;ht=0.161172&amp;wid=0.591771&amp;iwd=768&amp;iht=768</screen>
+<screen format="linespecific">
+lat=36.042108&amp;lon=-86.877408&amp;ht=0.161172&amp;wid=0.591771&amp;iwd=768&amp;iht=768</screen>
 
 After uploading tiger.dat to a public server, a request to 
 <screen format="linespecific"> http://tiger.census.gov/cgi-bin/mapgen?murl=$THATFILE$(cat tiger.ctr)</screen>
index 679556531fff230441c2f0fd8fc0eeed1e8d2d12..f215467ff10d949a43dfeb2fffd6d22ebb220250 100644 (file)
@@ -1,5 +1,6 @@
       <para>The option 'datum="datum name"' can be used to override
 the default of NAD27 ("N. America 1927 mean") which is correct for the
-continental U.S. Points in Hawaii should use "Old
-Hawaiian_mean"</para>
+continental U.S.</para> <para>Any legal <link linkend="Datums">datum supported
+by GPSBabel</link> may be used.  For example, points in Hawaii should 
+use "Old Hawaiian_mean".</para>
     
diff --git a/xmldoc/formats/options/xcsv-datum.xml b/xmldoc/formats/options/xcsv-datum.xml
new file mode 100644 (file)
index 0000000..2651994
--- /dev/null
@@ -0,0 +1,4 @@
+<para>
+This option specifies the GPS datum to be used on read or write. Valid values for this 
+option are listed in <xref linkend="Datums" />.
+</para>
index 5c7a6cf315e9d3e0c570002780ed2b2e60738017..2ed7ff68b9779e0fe10c4a9ebb695e9074158bf7 100644 (file)
@@ -9,5 +9,5 @@ to a particular waypoint.
 The following command line reads a GPX file with Groundspeak extensions 
 and writes a Palm document with encrypted hints and logs:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f 12345.gpx -o "palmdoc,dbname=Unfound Geocaches,encrypt,logs" -F 12345.pdb</screen>
+<para><userinput>gpsbabel -i gpx -f 12345.gpx -o "palmdoc,dbname=Unfound Geocaches,encrypt,logs" -F 12345.pdb</userinput></para>
     
index 428670cae4c2106e0808244ea2f45f0b63314e98..60abecec555d28daf2e8eaa3c5bfc2ae1b6e30ba 100644 (file)
@@ -5,9 +5,12 @@
 the lame NMEA six-character waypoint names that's treated as a
 second-class citizien in current versions of MapSource.  In Mapsource,
 use file-&gt;import to read these files.  If you name the files *.wpt,
-Mapsource will find them easier.
+Mapsource will find them more easily.
 </para>
       <para> In general, you should prefer the "mapsource" file format
 to this one.
 </para>
-    
+    <para>This format has been extended to handle many - but not all - 
+       files from <ulink url="http://www.gpsu.co.uk/index.html">GPS Utility</ulink>.  If you encounter something that GPSBabel does not handle well, use
+the free version of GPSUtil to read it and save as something more common.
+       </para>
index 6c600418b7b481bc3170da9c74823f4d59abab74..70838c26b545f81a0080b6920be125706aca0812 100644 (file)
@@ -19,7 +19,7 @@ Unfortunately, you need one .PSP file for every .MPS file.
 <section id="fmt_psp_faq">
 <title>Frequently Asked Questions</title>
 <qandaset>
-<qandaentry>
+<qandaentry id="why">
 <question>
 <para>
 Why should I use GPSBabel/psp to make pushpins when Streets &amp; Trips (S&amp;T)
@@ -42,7 +42,7 @@ GPSBabel/psp has the advantage of being able to create pushpins
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="blank">
 <question>
 <para>
 I keep getting a blank (32 byte) PSP file.
@@ -55,13 +55,13 @@ There are either no points to write, or you have botched the command
    on the command line.  A simple command line to create PSP files
    looks like this:
 </para>
-<screen format="linespecific">gpsbabel -i geo -f geocaching.loc -o psp -F NewOrleans.psp</screen>
+<para><userinput>gpsbabel -i geo -f geocaching.loc -o psp -F NewOrleans.psp</userinput></para>
 <para>
    Note the use of "-f" for INPUT files and "-F" for OUTPUT files.
 </para>
 </answer>    
 </qandaentry>
-<qandaentry>
+<qandaentry id="now_what">
 <question>
 <para>
 I've created a PSP file, now what do I do with it?
@@ -76,7 +76,7 @@ To use pushpins in Pocketstreets, you need to have both a map and a
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="no_map">
 <question>
 <para>
 I don't have a map.  What do I do now?
@@ -90,7 +90,7 @@ Create one using the "Export map to Pocketstreets" option in S&amp;T.  You
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="have_est">
 <question>
 <para>
 I have .EST files, not .PSP files.  What's up with that?
@@ -104,7 +104,7 @@ In order to make PSP files, you need to use the "Export map to
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="coord_jitter">
 <question>
 <para>
  The .PSP files differ when I use GPSBabel/psp versus Pocketstreets to 
@@ -119,7 +119,7 @@ Pocketstreets makes corrections to the S&amp;T waypoint data upon initial
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="mappoint">
 <question>
 <para>
 Does GPSBabel/psp work with (Autoroute, Mappoint, etc..) .PSP files?
@@ -132,7 +132,7 @@ As of this writing, I haven't seen any so I can't be sure.  If they
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="after2001">
 <question>
 <para>
  Does GPSBabel/psp work with (S&amp;T 2001, S&amp;T 2002, etc...) files?
@@ -145,7 +145,7 @@ MS changed the file layout between S&amp;T 2001 and S&amp;T 2002.  The GPSBabel
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="non_us">
 <question>
 <para>
 Does GPSBabel/psp work with (insert your country/location here) maps?
@@ -159,7 +159,7 @@ mailing list.
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="wrong_coords">
 <question>
 <para>
 What do you mean S&amp;T writes points with the wrong coordinates?
@@ -175,7 +175,7 @@ At some point in the "Export map to Pocketstreets" function in S&amp;T,
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="splitting">
 <question>
 <para>
 I have 800 waypoints that cover a dozen or so Pocketstreets maps.  
@@ -192,7 +192,7 @@ I have 800 waypoints that cover a dozen or so Pocketstreets maps.
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="doc_for_layout">
 <question>
 <para>
 Where can I find documentation for the layout of PSP files?
@@ -206,7 +206,7 @@ Just about everything I know about the PSP file format is documented
 </para>
 </answer>
 </qandaentry>
-<qandaentry>
+<qandaentry id="morehelp">
 <question>
 <para>
 I have some other problem, what do I do?
diff --git a/xmldoc/formats/raymarine.xml b/xmldoc/formats/raymarine.xml
new file mode 100644 (file)
index 0000000..258c12e
--- /dev/null
@@ -0,0 +1,7 @@
+<para>
+  This format supports the "Raymarine Waypoint File" format (.rwf).
+  More information to Raymarine you'll find at their <ulink url="http://www.raymarine.com">homepage</ulink>.
+</para>
+<para>
+  Known limits: max. 16 characters for waypoint names and max. 50 waypoints per route.
+</para>
index ce0e8cc26e5b2e3527e5dc8b8ede0bebd1de68a6..1b82e49c4c56e6c10782d411763f0b9d83ea0ce2 100644 (file)
@@ -1,8 +1,9 @@
 
       
       
-      <para> This is a format for importing into Microsoft Streets and
-Trips.  It's been exercised on versions 2003, 2004, and 2005. Detailed
+      <para> This is a format for importing into 
+<ulink url="http://www.microsoft.com/streets/default.mspx"> Microsoft Streets and
+Trips</ulink>.  It's been exercised on versions from 2003 through 2007. Detailed
 instructions on how to use it, including preserving hyperlinks, are at
 <ulink url="http://www.gpsbabel.org/formats/s_and_t/Importing_into_Microsoft_Streets_and_Trips_2003.html">gpsbabel.org</ulink>
          </para>
index 4073e0f27e9d3278dbe6a2e1a4ac60faf165769c..2c30a046d6aba462a914ef2f1960c29e14c0838e 100644 (file)
@@ -1,7 +1,7 @@
 
       
       
-      <para> This format is for Street Atlas USA 2004 Plus.
+      <para> This format is for Delorme Street Atlas USA 2004 Plus and later.
 </para>
       <para> For geocachers importing data from a tool like GSAK or
 Spinner, import the file twice in XData.  One will create a file with
diff --git a/xmldoc/formats/shape.xml b/xmldoc/formats/shape.xml
new file mode 100644 (file)
index 0000000..fc97f69
--- /dev/null
@@ -0,0 +1,15 @@
+      <para>This format reads and writes ESRI shapefiles as best it can.  The
+reality is that shapefiles can contain a lot of map-oriented data that does
+not convert well to our model of waypoints, tracks, and routes.  Points are
+mapped to waypoints. Arcs are mapped to tracks.<para>
+<para>
+If a field is named 'NAME', that will be used for hte shortname.  Likewise
+for a field named 'URL'.
+</para>
+<para>
+Given the forced fit nature of conversions between shapefiles and other
+formats, the results of these conversions are frequently disappointing.
+A custom converter (perhaps via a modification to our source) will frequently
+deliver better results.
+</para>
+    
index e01b49768e8b9aa091a0e9b66e3891889ff39f12..9e2f9e01cf092dcc7e386c105370284d6dd41ada 100644 (file)
@@ -15,9 +15,7 @@
                <member>28 = X9 TrackLog</member>
        </simplelist>
 </para>
-<para>
-       <screen format="linespecific">gpsbabel -i gpx -f some-routes.gpx -r -o stmsdf,index=3 -F single-route.sdf</screen>
-</para>
+       <para><userinput>gpsbabel -i gpx -f some-routes.gpx -r -o stmsdf,index=3 -F single-route.sdf</userinput></para>
 <para>
        <ulink url="http://www.suunto.fi">Suunto Website</ulink>
 </para>
index 40e5855b27ea79e385c713425d5b8ef283950325..592632d69067919711fefea61a428f21126b4a2a 100644 (file)
@@ -11,5 +11,5 @@ GPSBabel also supports the <link linkend="fmt_bcr">bcr</link> format, which
 may also be used with this program and supports both reading and writing.
 </para>
 
-<screen format="linespecific"> gpsbabel -r -i tef,routevia -f in.xml -o gpx -F out.gpx</screen>
+<para><userinput> gpsbabel -r -i tef,routevia -f in.xml -o gpx -F out.gpx</userinput></para>
     
index 1e2952c59ef44db31c2395e8009f26710bfe4efc..28431160bf90cf4dc7657c32881f70a14d10a8ff 100644 (file)
@@ -4,5 +4,5 @@ handy for listings of any type of waypoint files.
       <para> The following command line reads a GPX file with
 Groundspeak extensions and writes a text file with encrypted hints:
 </para>
-<screen format="linespecific">gpsbabel -i gpx -f 12345.gpx -o text,encrypt -F 12345.txt</screen>
+<para><userinput>gpsbabel -i gpx -f 12345.gpx -o text,encrypt -F 12345.txt</userinput></para>
     
index ee5457bd494d079820eed64e2e0767e000cd8f18..255b927627fc147424622cc64863378c4757e427 100644 (file)
@@ -1,8 +1,8 @@
 
       
       
-      <para>TopoMapPro Places File.  Reads and writes places files for
-use in TopoMapPro <ulink url="http://www.topomappro.com">topomappro.com</ulink>).  As this file
+      <para>Reads and writes places files for
+use in <ulink url="http://www.topomappro.com">TopoMapPro places files</ulink>.  As this file
 type can store links other than web links, anything that is not a http
 url will be discarded.  Note that this does not do datum conversions,
 so if your input file does not have WGS84/NZGD2000 data, your output
index cb9b9472655628ab6beeeff4e901ac804c21f17e..5da5edc35d4b17decf162bb922ca9eb923a70aa3 100644 (file)
@@ -1,7 +1,7 @@
 
       
       
-      <para> This format can read and write TomTom .ov2 (POI) files,
+      <para> This format can read and write <ulink url="http://www.tomtom.com">TomTom</ulink> .ov2 (POI) files,
 as used by the TomTom GO and TomTom Navigator.  It has been tested
 with an original TomTom GO running version 5.00 of the TomTom
 software.  There may be some records that confuse the input module -
index 6b7a21bbaea1311fb91b56ab3cea94a487f59e4d..61b8d205cb964062155fa9593fedae501956db99 100644 (file)
@@ -12,7 +12,7 @@
        </para>
        <para>
        The list of keywords include "lat", "lon", "desc", "name", 
-       "notes", "alt", "utm z", "utm n", "utm e", and "url".   
+       "notes", "alt", "utm z", "utm n", "utm e", "utm c" and "url".   
        Fuller spellings (i.e. "longitude") may be used.
        </para>
        <para>
index f1c49475d6bd795ef3732b051f890ca39f681692..94509a517e5cd2e64b5373e44e881daec8d0f1fd 100644 (file)
@@ -6,7 +6,7 @@ by Wintec's Windows application.</para>
 </para>
 <example id="wbt-bin-on-macos">
   <title>Command showing conversion of a Wintec binary file to GPX</title>
-  <screen format="linespecific">gpsbabel -i wbt-bin -f tracks.bin -o
-gpx -F out.gpx</screen>
+  <para><userinput>gpsbabel -i wbt-bin -f tracks.bin -o
+gpx -F out.gpx</userinput></para>
 </example>
 
index 215f0fea12893dd3910ba89a89b4b8c52c4d54d4..3664d0dacb6b7f0168e3dd9cf94482b7c79128f7 100644 (file)
@@ -4,6 +4,6 @@
 </para>
 <example id="wbt-on-macos">
   <title>Command showing WBT-200 download and erase over Bluetooth on Mac OS X</title>
-  <screen format="linespecific">gpsbabel -i wbt,erase -f /dev/cu.WBT200-SPPslave-1 -o gpx -F out.gpx</screen>
+  <para><userinput>gpsbabel -i wbt,erase -f /dev/cu.WBT200-SPPslave-1 -o gpx -F out.gpx</userinput></para>
 </example>
     
index 2032e560ba1863a7728c9386883965a627f71071..5d843e9dde62c9524087db8e1602e993e6a964fd 100644 (file)
@@ -1,8 +1,9 @@
 
       
       
-      <para>Delorme TopoUSA/XMap Conduit is one of the billion CSV
-variants mentioned above.  It's just like S&amp;A with the addition of
+      <para>Delorme TopoUSA/XMap Conduit is one of the bazillion 
+<link linkend="fmt_csv">CSV variants</link> 
+variants mentioned above.  It's just like Delorme Streets &amp; Atlas with the addition of
 a completely pointless line at the beginning and end of the file. This
 is the format used to hot-sync to XMap from withing TopoUSA. Done with
 help of Dan Edwards.</para>
index 06d59193757a5544a9edf7bc4bc14675ecce2ced..530403ef8e037f03a9e2892f35f316feebd65a40 100644 (file)
@@ -1,7 +1,9 @@
 
       
       
-      <para>Delorme XMap2006 Conduit is just like XMap, except there are 
+      <para>Delorme XMap2006 Conduit is just like 
+<link linkend="fmt_xmap">XMap</link> 
+, except there are 
        no spaces between fields and the coordinate format is slightly 
        different. The completely pointless header and footer lines 
        are the same, at least. Use this to create the XMapHHWptsSend.txt 
index cbd2481e11c71f765462975f7528f1d987353b4d..3fcb674c7b0fad9c40cc402e0898d594a38e683a 100644 (file)
@@ -1,7 +1,7 @@
 <para>
 Delorme XMapHandHeld Street Atlas USA is another of the
-billion CSV variants.  This is the format used by XmapHH SA USA on (at
-least) PocketPC O/S. 
+billion <link linkend="fmt_csv"> CSV variants</link>.  
+This is the format used by XmapHH SA USA on (at least) PocketPC O/S. 
 </para>
 <para> 
 This XMap is not the same as the simpler 
@@ -31,28 +31,30 @@ It should also be noted that <emphasis>reading</emphasis> multiple files
 is indeed possible, but if you have more than a few points, it can be a task. 
 For example:
 </para>
-<screen format="linespecific">gpsbabel -i xmapwpt -f Xmap1.wpt -f Xmap2.wpt -o mapsend -F mapsend.wpt</screen>
+<para><userinput>gpsbabel -i xmapwpt -f Xmap1.wpt -f Xmap2.wpt -o mapsend -F mapsend.wpt</userinput></para>
 <para>
 will read the two Xmap .wpt files and write one mapsend file.  This
 is fine for a small handful of points, but could be quite cumbersome
 for folks like me who have 100+ waypoints loaded into XMap.  For *nix
 folks, something as simple as:
 </para>
-<screen format="linespecific">cat *.wpt > /tmp/foo.wpt
-gpsbabel -i xmapwpt -f foo.wpt -o mapsend -F mapsend.wpt </screen>
+<para><userinput>cat *.wpt > /tmp/foo.wpt</userinput>
+<userinput>gpsbabel -i xmapwpt -f foo.wpt -o mapsend -F mapsend.wpt </userinput></para>
 <para>
 will do the trick just fine.  
 </para>
-<programlisting format="linespecific">
+<programlisting>
 #!/full/path/to/perl
 $INPUTFILE = @ARGV[0];
 $TARGETDIR = @ARGV[1];
 $FILENAME  = @ARGV[2];
 
 if (! $FILENAME) {
-    print "Usage: xmap_split.pl INPUT_FILE OUTPUT_DIRECTORY FILENAME_BASE\n";
+    print "Usage: xmap_split.pl " . 
+       "INPUT_FILE OUTPUT_DIRECTORY FILENAME_BASE\n";
     print " (i.e. xmapl_split.pl points.wpt /tmp/points GPSB)\n";
-    print " (created GPSB0001-GPSBXXXX in /tmp/points/ from points.wpt)\n";
+    print " (created GPSB0001-GPSBXXXX " .
+       " in /tmp/points/ from points.wpt)\n";
     exit;
 }
 
@@ -62,7 +64,8 @@ while (&lt;INFILE&gt;) {
     $lc++;
     $filename = sprintf("%s/Gpsb%04d.wpt", $TARGETDIR, $lc);
 
-    open (OUTFILE, "&gt;$filename") || die "Cannot open $filename for write!\n";
+    open (OUTFILE, "&gt;$filename") || 
+       die "Cannot open $filename for write!\n";
 
     print OUTFILE $_;
 
index e0842df8057328ea39b96246fb6abaeb8aa47d05..5545e3609ece0a28d3e7bcf2bdc4b70d0db687b6 100644 (file)
@@ -16,7 +16,7 @@
 
 <refsynopsisdiv>
 <cmdsynopsis>
-<command>gpsbabel</command>
+<userinput>gpsbabel</userinput>
 <arg choice="opt">
   <option>iofFxsh</option>
 </arg>
index cf3b354eaaaf2771c5b650f722b91004221d39d3..e807de9da7b3b5ea2d7add85124ec9838567963b 100644 (file)
@@ -11,7 +11,7 @@ sub expandrw {
 
    my $res = "";
    if ( ($read eq 'r') || ($write eq 'w')) {
-     $res .= "      <listitem>\n        <para>\n          ";
+     $res .= "      <listitem>\n        <para role=\"fmtcapsitem\">\n          ";
      if ( ($read eq 'r') && ($write eq 'w')) {
        $res .= "read and write $type";
      }
@@ -28,13 +28,13 @@ sub expandrw {
 
 sub expandoptions {
    my $opts = shift;
-   my $res = "  <para>\n    This format can...\n    <itemizedlist>\n";
+   my $res = "  <para role=\"fmtcapshdr\">\n    This format can...\n    <itemizedlist>\n";
    
    $res .= expandrw( substr($opts,0,1), substr($opts,1,1), 'waypoints' );
    $res .= expandrw( substr($opts,2,1), substr($opts,3,1), 'tracks' );
    $res .= expandrw( substr($opts,4,1), substr($opts,5,1), 'routes' );
  
-   $res .= "    </itemizedlist>\n  </para>\n";
+   $res .= "    </itemizedlist></para>\n";
 
    $res;  
 }
@@ -144,7 +144,7 @@ END
      $nid = 'fmt_'.$id.'_o_'.$line[2];
      print FILE <<END;
   <section id="$nid">
-    <title>$line[2] option</title>
+    <title><option>$line[2]</option> option</title>
     <para>
       $line[3].
     </para>
index 807f194ef3c42749b237159e5b2ccec03afd7dd6..fd26feac0c7ba7ea5b5a706a2b61beb91bc4a33d 100644 (file)
@@ -324,7 +324,7 @@ create a three dimensional IGC file. </para>
 Routenplaner 2002-..." by Map&amp;Guide. It is a route-onle
 format. If you own a newer release (2005...) you can also use the XML
 export and convert via <command moreinfo="none">gpsbabel ... -i tef
-...</command> to your preferred format.  May be there are other
+...</userinput> to your preferred format.  May be there are other
 products from Map&amp;Guide using the format.
 </para>
       <para> Coordinates are stored in Mercator format. The
@@ -1301,7 +1301,7 @@ format.  Intended to serve as source for number-processing
 applications like OpenOffice, Ploticus and others. Tab was chosen as
 delimiter because it is a) supported by both OpenOffice and Ploticus
 and b) is not ',', so you can use <command moreinfo="none">sed -i
-"s/./,/g" &lt;x&gt;.csv'</command> to adapt it to locales where ',' is
+"s/./,/g" &lt;x&gt;.csv'</userinput> to adapt it to locales where ',' is
 used as decimal seperator.  Contributed by Tobias Minich.</para>
     </section>
     <section id="ozi">
@@ -1709,7 +1709,7 @@ handle at least a few thousand of the billion CSV variants available.
 By itself, it doesn't comply to any format, however *most* CSV
 variants can be described as a "style" and fine-tuned by the end user.
 For more information on it's use, please see README.style in the
-style/ sub-directory of <command moreinfo="none">GPSBabel</command>.
+style/ sub-directory of <command moreinfo="none">GPSBabel</userinput>.
 For an example of using the XCSV module within your C program, look at
 the <filename moreinfo="none">ozi.c</filename>, <filename
 moreinfo="none">mxf.c</filename>, and <filename
index edd478f4cd7471aeea51b1c6f6ff48105d5953b0..3763e73980572e5ecb7b7b20773da13e0ab21eaa 100644 (file)
@@ -1,7 +1,7 @@
 /*
     Common utilities for XML-based formats.
 
-    Copyright (C) 2004 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2004, 2005, 2006, 2007 Robert Lipe, robertlipe@usa.net
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -39,7 +39,7 @@ static const char **xg_ignore_taglist;
 #define MYNAME "XML Reader"
 
 void
-write_xml_header(FILE *ofd)
+write_xml_header(gbfile *ofd)
 {
        char buff[128];
        cet_cs_vec_t *cs = cet_find_cs_by_name(CET_CHARSET_ASCII);
@@ -48,20 +48,20 @@ write_xml_header(FILE *ofd)
            snprintf(buff, sizeof(buff), " encoding=\"%s\"", global_opts.charset_name);
        else
            buff[0] = 0;
-       fprintf(ofd, "<?xml version=\"1.0\"%s?>\n", buff);
+       gbfprintf(ofd, "<?xml version=\"1.0\"%s?>\n", buff);
 }
 
 void
-write_xml_entity(FILE *ofd, const char *indent,
+write_xml_entity(gbfile *ofd, const char *indent,
                  const char *tag, const char *value)
 {
         char *tmp_ent = xml_entitize(value);
-        fprintf(ofd, "%s<%s>%s</%s>\n", indent, tag, tmp_ent, tag);
+        gbfprintf(ofd, "%s<%s>%s</%s>\n", indent, tag, tmp_ent, tag);
         xfree(tmp_ent);
 }
 
 void
-write_optional_xml_entity(FILE *ofd, const char *indent,
+write_optional_xml_entity(gbfile *ofd, const char *indent,
                           const char *tag, const char *value)
 {
         if (value && *value)
@@ -69,41 +69,42 @@ write_optional_xml_entity(FILE *ofd, const char *indent,
 }
 
 void
-write_xml_entity_begin0(FILE *ofd, const char *indent,
+write_xml_entity_begin0(gbfile *ofd, const char *indent,
                                                          const char *tag)
 {
-    fprintf(ofd, "%s<%s>\n", indent, tag);
+    gbfprintf(ofd, "%s<%s>\n", indent, tag);
 }
 
 void
-write_xml_entity_begin1(FILE *ofd, const char *indent,
+write_xml_entity_begin1(gbfile *ofd, const char *indent,
                                                          const char *tag, const char *attr,
                                                          const char *attrval)
 {
-    fprintf(ofd, "%s<%s %s=\"%s\">\n", indent, tag, attr, attrval);
+    gbfprintf(ofd, "%s<%s %s=\"%s\">\n", indent, tag, attr, attrval);
 }
 
 void
-write_xml_entity_begin2(FILE *ofd, const char *indent,
+write_xml_entity_begin2(gbfile *ofd, const char *indent,
                                                          const char *tag, const char *attr1,
                                                          const char *attrval1, const char *attr2,
                                                          const char *attrval2)
 {
-    fprintf(ofd, "%s<%s %s=\"%s\" %s=\"%s\">\n", indent, tag, attr1, attrval1, attr2, attrval2);
+    gbfprintf(ofd, "%s<%s %s=\"%s\" %s=\"%s\">\n", indent, tag, attr1, attrval1, attr2, attrval2);
 }
 
 void
-write_xml_entity_end(FILE *ofd, const char *indent,
+write_xml_entity_end(gbfile *ofd, const char *indent,
                                         const char *tag)
 {
-    fprintf(ofd, "%s</%s>\n", indent, tag);
+    gbfprintf(ofd, "%s</%s>\n", indent, tag);
 }
 
 void
-xml_fill_in_time(char *time_string, const time_t timep, int long_or_short)
+xml_fill_in_time(char *time_string, const time_t timep, int microseconds, int long_or_short)
 {
        struct tm *tm = gmtime(&timep);
        char *format;
+       int n;
        
        if (!tm) {
                *time_string = 0;
@@ -111,25 +112,31 @@ xml_fill_in_time(char *time_string, const time_t timep, int long_or_short)
        }
        
        if (long_or_short == XML_LONG_TIME)
-               format = "%02d-%02d-%02dT%02d:%02d:%02dZ";
+               format = "%02d-%02d-%02dT%02d:%02d:%02d";
        else
-               format = "%02d%02d%02dT%02d%02d%02dZ";
-       sprintf(time_string, format,
+               format = "%02d%02d%02dT%02d%02d%02d";
+       n = sprintf(time_string, format,
                tm->tm_year+1900, 
                tm->tm_mon+1, 
                tm->tm_mday, 
                tm->tm_hour, 
                tm->tm_min, 
                tm->tm_sec);
+       if (microseconds) {
+               n += sprintf(time_string + n, ".%03d", microseconds / 1000);
+       }
+       time_string[n++] = 'Z';
+       time_string[n++] = '\0';
+       
 }
 
 void
-xml_write_time(FILE *ofd, const time_t timep, char *elname)
+xml_write_time(gbfile *ofd, const time_t timep, int microseconds, char *elname)
 {
        char time_string[64];
-       xml_fill_in_time(time_string, timep, XML_LONG_TIME);
+       xml_fill_in_time(time_string, timep, microseconds, XML_LONG_TIME);
        if (time_string[0]) {
-               fprintf(ofd, "<%s>%s</%s>\n",
+               gbfprintf(ofd, "<%s>%s</%s>\n",
                        elname,
                        time_string,
                        elname
index ecfa68dd7695f0161d364ef610e7955e7fca84c9..0e16b589cad4cb3d89113df984c99624bff2258c 100644 (file)
@@ -1,7 +1,7 @@
 /*
     Header for our common utilities for XML-based formats.
 
-    Copyright (C) 2004, 2005 Robert Lipe, robertlipe@usa.net
+    Copyright (C) 2004, 2005, 2006, 2007 Robert Lipe, robertlipe@usa.net
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -36,23 +36,23 @@ typedef struct xg_tag_mapping {
 } xg_tag_mapping;
 
 
-void write_xml_entity(FILE *ofd, const char *indent,
+void write_xml_entity(gbfile *ofd, const char *indent,
                const char *tag, const char *value);
-void write_xml_entity_begin0(FILE *ofd, const char *indent,
+void write_xml_entity_begin0(gbfile *ofd, const char *indent,
                const char *tag);
-void write_xml_entity_begin1(FILE *ofd, const char *indent, const char *tag, 
+void write_xml_entity_begin1(gbfile *ofd, const char *indent, const char *tag, 
                const char *attr1, const char *attrval1);
-void write_xml_entity_begin2(FILE *ofd, const char *indent, const char *tag, 
+void write_xml_entity_begin2(gbfile *ofd, const char *indent, const char *tag, 
                const char *attr1, const char *attrval1, 
                const char *attr2, const char *attrval2);
-void write_xml_entity_end(FILE *ofd, const char *indent, const char *tag);
+void write_xml_entity_end(gbfile *ofd, const char *indent, const char *tag);
 
-void write_optional_xml_entity(FILE *ofd, const char *indent,
+void write_optional_xml_entity(gbfile *ofd, const char *indent,
                const char *tag, const char *value);
-void xml_write_time(FILE *ofd, const time_t timep, char *elname);
-void xml_fill_in_time(char *time_string, const time_t timep, 
+void xml_write_time(gbfile *ofd, const time_t timep, int microseconds, char *elname);
+void xml_fill_in_time(char *time_string, const time_t timep, int microseconds,
                int long_or_short);
-void write_xml_header(FILE *ofd);
+void write_xml_header(gbfile *ofd);
 void xml_ignore_tags(const char **taglist);
 
 void xml_init(const char *fname, xg_tag_mapping *tbl,const char *encoding);
diff --git a/zlib/.cvsignore b/zlib/.cvsignore
new file mode 100644 (file)
index 0000000..c6cac69
--- /dev/null
@@ -0,0 +1 @@
+empty